Loading ...
Sorry, an error occurred while loading the content.

13778Re: Book Review: Programmer's Guide to the 1802

Expand Messages
  • tomswan1802
    May 1 4:54 AM
    • 0 Attachment
      Thanks for the detailed review of my book. You are correct that my assembler is not a full-blown product, but more of a translator that I wrote for my own use (long before I wrote the book) after growing tired of hand encoding machine code instructions. It works, but my Cosmac VIP being cramped for memory, it has zero frills! PS: I'm going to create a pdf of the book and offer it on my web site soon. -- ts

      --- In cosmacelf@yahoogroups.com, William Donnelly <william@...> wrote:
      >
      > I did a quick-read of my "Programmer's Guide to the 1802
      > (with an Assembler for Your Machine)" by Tom Swan.
      > 156+ pages. (Preface, etc.) Published 1981 by Hayden Book Co.
      > First edition. (was it ever re-printed after first-run? probably not)
      >
      > The book is a nice introduction to programming for beginning programmers
      > with a specific, extended focus on and for beginning 1802 programmers.
      > That is pretty much the extent of the book. Though it is fairly complete in
      > what it covers, and is more than adequate for the beginner, and possibly
      > beginning intermediate, 1802 programmer.
      >
      > The author used a "4k Cosmac VIP" for programming. There are a few B&W
      > photos,
      > of the VIP and what I assume is its internal board, and several graphics.
      >
      > The main section/chapter "Fundamentals of Assembly Language" would be better
      > titled "Fundamentals of Machine Language" imo. Although there are those
      > who use
      > the two terms interchangeably. I am of the opinion that Assembly
      > Language specifically
      > uses a fairly complete Assembler to program, using a source code file,
      > and a resulting
      > assembled program and/or object file that needs a linker to create the
      > final program,
      > and Machine Language deals more with "low-level" opcode and mnemonic
      > instructions
      > and such. The chapter is fairly complete, with specific focus on the
      > 1802 instruction set
      > and microprocessor functionality. (DMA, etc.) There are occasional
      > references to the
      > 1861 video display chip here and there.
      >
      > The 1802 instruction set is covered for each instruction. Most of this
      > looks like
      > it was taken from the MPM-201x CDP1802 Users Manual, including timing
      > diagrams,
      > internal architecture, etc. There may be additional commentary beyond
      > that of the
      > manual in some of the instructions covered.
      >
      > The simple "assembler" is actually PART of a Monitor, that only performs
      > "assembly"
      > of the single line user input of a single opcode and disassembly of the
      > resulting code.
      > (for 'user verification') Therefore the admitted minimal operation of
      > "does not support
      > the use of labels, macros, or mathematical expressions". (mostly because
      > it's not really
      > a true/full "Assembler") It is written in 1802 code, so there is
      > something, or much, to be
      > learned by studying that code. There is only an "assembly-like" program
      > listing, no hex dump for entry.
      >
      > The user stores up to 32 bytes of input into the input/output buffer,
      > calls the
      > ASMBLR routine, and it "assembles" the single line mnemonic into an opcode,
      > stores the result in memory via register RA, and then calls its internal
      > "Disassembler" (DISASM)
      > routine to store the disassembled opcode into the I/O buffer. (this
      > increments RA to the
      > next location) If an error occurs, RA is not changed. "All possible
      > errors are not recognized
      > by ASMBLR, although most common ones will be caught." (for example, LDN
      > R0 is accepted
      > (00h) and disassembles into IDL)
      >
      > It is up to the user to provide the Input, Output and Control routines
      > to use the Dis/Assembler.
      > The author mentions the "operating system", so he must / might be
      > referring to
      > something the Cosmac VIP had already with its ROM 'monitor' or whatever
      > it had. (?)
      > There is very little information about the VIP. (effectively none)
      >
      > To perform something more like a real Assembler would act would require
      > the user
      > to load the source text of the code line by line and send it to the
      > ASMBLR routine,
      > possibly using the returned output to create a 'list file'. The DISASM
      > routine may be
      > called separately for something akin to a monitor 'list' command, but in
      > a loop,
      > once for each instruction.
      >
      > There is "A Mini Library" of several routines included as the last chapter.
      > These are usable, and somewhat educational (for study/learning), as well.
      >
      > The intermediate or advanced programmer, especially 1802 programmer,
      > needs a more advanced book. (that, afaik, is not available) I would have
      > to think
      > about what an "advanced book" might have that is not in this book.
      >
      > Maybe this is all that is really needed for the 1802, and if you are
      > past the beginner
      > programmer level, then there is little more to offer. Perhaps some
      > advanced programming
      > 'tricks', a good in-depth explanation of the 1861 programming and usage,
      > some more,
      > more-advanced "library" routines so you don't have to reinvent the
      > wheel, explanation
      > of the use of a good, actual Assembler (included?), an in-depth
      > explanation of CHIP-8
      > and how to write programs with it, possibly something like the CDP1802
      > manuals contain,
      > some of the code and concepts of which are more complex and extended
      > than what is
      > included in this book. (I think)
      >
      > And, since the 1802 is a "hobbyist" microprocessor, more information on
      > interfacing
      > circuits to it, using its I/O, and DMA, etc., or even building a
      > computer with it, although
      > that might be a book unto itself. (Lee Hart already did most of that
      > with the Membership Card
      > manual, and similarly the Elf2K manual)
      >
      > But the market for anything like this/these is so vertical, that it
      > would have to be done for
      > the love of the hobby, possibly "props" / 'community notoriety', etc.
      > Part of the 'problem'
      > is that many/most 1802 microcomputers have very limited user and data
      > interfaces, except
      > for the Elf2K, and possibly a few others. So the 'toy' aspect kind of
      > gets in the way.
      >
      > It's been quite awhile since I've looked at or read a microprocessor or
      > microcontroller
      > programming book, especially one that is for "advanced programmers". I
      > suppose if I
      > looked at one of those it would remind me, inspire me, give me ideas,
      > and point me in
      > the direction of what could be done similarly for the 1802 in that respect.
      >
      > Anyway, as I mentioned elsewhere, I recently paid $50 for my copy of
      > this book.
      > It's an ex-library copy in pretty good shape. Is that even "legal"?
      > Probably only if the
      > library sold it, which they do sometimes do. Hopefully people aren't
      > stealing these from
      > libraries and selling them because they are so high-priced now. All
      > references to whatever
      > library it was have been 'destroyed'. So I guess I'm probably not going
      > to gaol for
      > 'receiving stolen property', or anything like that. The $50 price tag
      > was worth it for
      > the collectability aspects. It will most-likely only be sold when I die.
      > And I could go at
      > any time, so people might want to get on my waiting list. ;o) (or you
      > could take a chance
      > that you're in my will -- you probably shouldn't get your hopes up, though)
      >
      > -- Bill
      >
    • Show all 18 messages in this topic