Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

ProDOS Assembly Tools docs

165 views
Skip to first unread message

David Schmenk

unread,
Mar 26, 2012, 4:03:54 PM3/26/12
to
I know I'll probably get crucified for this, but....

Looking for official documentation for ProDOS EDASM. I know it was posted to the gmail account and promptly taken down over copyright issues. However, since it was never determined who holds the copyright (besides Apple) and it isn't for sale on any of the Apple II sites, I was going to ask if someone who has a scan of the docs to send it to me with the caveat that I'd purchase it whenever it became available (or sell me their hard copy). I have the DOS Toolkit Assembler manual, but there were enough changes between the DOS and ProDOS version to warrant the need for accessing the newer docs.

Thanks to John B. Matthews for describing some of the updates to the ProDOS EDASM on his website.

O.K. Flame on...

Dave (donning flame-retardant suit)

D Finnigan

unread,
Mar 26, 2012, 6:34:34 PM3/26/12
to
David Schmenk wrote:
> I know I'll probably get crucified for this, but....
>
> Looking for official documentation for ProDOS EDASM.

Was this part of the ProDOS workbench? Do you know?

If so, then I have it, since I have the whole workbench set.

Picture for reference:

http://macgui.com/gallery/showphoto.php?pic_id=1355

--
]DF$
Mac GUI Vault - A source for retro Apple II and
Macintosh computing.
http://macgui.com/vault/

David Schmenk

unread,
Mar 26, 2012, 8:11:43 PM3/26/12
to
On Monday, March 26, 2012 3:34:34 PM UTC-7, D Finnigan wrote:
> David Schmenk wrote:
> > I know I'll probably get crucified for this, but....
> >
> > Looking for official documentation for ProDOS EDASM.
>
> Was this part of the ProDOS workbench? Do you know?
>
> If so, then I have it, since I have the whole workbench set.
>
> Picture for reference:
>
> http://macgui.com/gallery/showphoto.php?pic_id=1355
>

This was the only image I could find:
http://www.pcmuseum.ca/details.asp?id=38275&type=software

It looks similar with the words "ProDOS Assembler Tools" at the top.

Dave...

D Finnigan

unread,
Mar 27, 2012, 11:54:50 AM3/27/12
to
Well, I'll look around and see if I can find where I put my workbench.

David Schmenk

unread,
Mar 27, 2012, 3:36:32 PM3/27/12
to
I appreciate it. I'll explain a little what interested me about EDASM. My PLASMA project needs an assembler to really be a full featured environment as well as develop the actual interpreter and loader. I have been using the cc65 assembler but wanted something self-hosted. Along these same lines, I was thinking of a relocatable module format for PLASMA. Why not kill two birds with one stone and combine the advantages of EDASM: disk based, able to run on a 64k machine, relocating object file format, with PLASMA. I can easily extend the relocatable object file format to include a byte code segment. I'm just missing some of the low level details of ProDOS EDASM so I don't break or misappropriate features EDASM relies on. PLASMA could then be a linking loader for both EDASM generated REL files and PLASMA modules.

Dave...

Antoine Vignau

unread,
Mar 27, 2012, 4:42:23 PM3/27/12
to
OK, I have it but that is too many pages to scan, sorry :-(
av

David Schmenk

unread,
Mar 27, 2012, 7:26:21 PM3/27/12
to
Tease

Steven Hirsch

unread,
Mar 28, 2012, 6:22:11 PM3/28/12
to
Very interesting. About 22 years ago, I looked into using REL format for the
CardZ180 host-side device drivers. Ended up using a kludgy relocation bitmap
scheme because I couldn't find out much of anything about REL.

I'm really surprised that none of the other 8-bit assemblers used relocatable
object code. Seems like OMF for the IIgs is where that came into play.

David Schmenk

unread,
Mar 28, 2012, 8:06:54 PM3/28/12
to
On Wednesday, March 28, 2012 3:22:11 PM UTC-7, Steven Hirsch wrote:
>
> Very interesting. About 22 years ago, I looked into using REL format for the
> CardZ180 host-side device drivers. Ended up using a kludgy relocation bitmap
> scheme because I couldn't find out much of anything about REL.
>
> I'm really surprised that none of the other 8-bit assemblers used relocatable
> object code. Seems like OMF for the IIgs is where that came into play.

Merlin Pro/8 could use a REL format for building and linking modules into a final binary, but the format wasn't documented as far as I could tell. Merlin under ProDOS requires a //e or //c but a II+ is my weapon of choice, so it kind of limits the options as well.

Dave...

A2CPM

unread,
Mar 30, 2012, 3:42:02 PM3/30/12
to
Hi, y'all!

A disassembly of the "LINKER" module of the ProDOS EDASM package
has been sent to the group's GMail account.

Willi

A2CPM

unread,
Apr 5, 2012, 10:34:56 AM4/5/12
to
Hi, y'all!

'ENTRY' is the mnemonic to use to define an address that can be
referred to be another module. 'DEF' and '.DEF' are synonyms for this
mnemonic. 'EXTRN' is the mnemonic to use to define a reference to an
address in another module. 'REF' and '.REF' are synonyms for this
mnemonic. 'ZXTRN' is the mnemonic to use to define a reference to a
page zero address in another module. 'ZREF' is a synonym for this
mnemonic. Finally, 'REL' is the mnemonic to use to get the assembler
to generate a 'REL' file instead of a 'BIN' file.

Willi

A2CPM

unread,
Apr 5, 2012, 11:50:41 AM4/5/12
to
Hi, y'all!

Oops, missed a spot! It's 'ZDEF', the page zero version of
'DEF' (or 'ENTRY' or '.DEF').

Willi

David Schmenk

unread,
Apr 5, 2012, 12:55:20 PM4/5/12
to
John Matthews' site has pretty much documented everything needed to code with EDASM. The only thing I would update, and the reason I was looking for the actual documentation, was some symbol table information. The MACRO bit ($040) is apparently unused, just as in the DOS version. I plan on co-opting this for PLASMAs needs.

Dave...

D Finnigan

unread,
Apr 5, 2012, 1:33:00 PM4/5/12
to
I looked around for my documentation, but it appears to be stored away
somewhere inconvenient. I may be able to get to it this weekend if you still
have an interest.

A2CPM

unread,
Apr 5, 2012, 6:06:16 PM4/5/12
to
Hi, y'all!

I've found what appears to be coding errors in "LINKER". The
first snippet of code that seems to be in error is as follows:
LDA WORDZ80
SEC
SBC PTRZ84
STA RDWRPL+6
LDA WORDZ80+1
SBC PTRZ84+1
STA RDWRPL+6
The last line should be '+7' not '+6'.
The second snippet of code that seems to be in error is as
follows:
L35B3 CMP #'A
BCC L35A7
CMP #'F
BCS L35B1
SBC #6
CLC
RTS
The third line should be '#'G' if the subroutine is intended to return
with the carry flag clear if the accumulator contains an ASCII
hexadecimal digit on entry to the subroutine.
Further analysis of the code may reveal if these apparent coding
errors are real bugs.

Willi

David Schmenk

unread,
Apr 6, 2012, 12:09:16 AM4/6/12
to
I have found the information I needed to proceed. We are missing a good quality scan to archive, though.

Thanks,

Dave...

Steven Hirsch

unread,
Apr 6, 2012, 8:09:04 AM4/6/12
to
On 04/06/2012 12:09 AM, David Schmenk wrote:

> I have found the information I needed to proceed. We are missing a good
> quality scan to archive, though.

I found an excellent quality scan, which I've been unsuccessfully trying to
e-mail to Dave (&)(*^)*^ gmail!!).

If someone wants to host it, contact me privately. I'm not going to put it on
the mailing list and risk it being the target of DMCA storm-troopers.


mark...@yahoo.com.sg

unread,
Apr 7, 2012, 3:45:27 AM4/7/12
to
I agree this is a bug. However, it may never get executed if ESD is < 5K.

>L35B3 CMP #'A
> BCC L35A7
> CMP #'F
> BCS L35B1
> SBC #6
> CLC
> RTS

I suspect the function of this routine is to return (A)= $30-$3F if on
entry (A) = '0'-'9' or 'A'-'F'

MarkLim

unread,
Apr 7, 2012, 4:03:59 AM4/7/12
to
I have also disassembled EdAsm's Linker Module.

Currently, I am porting it to MPW IIGS assembly language because of
the RECORD feature. Now I can use syntax like

ldy #XtrnRecord.externNum
lda (xtrnRecP),Y ;xtrnRecP is the zpage location $8C
sta MiniESDRec+ESDRecord.externNum

where

XtrnRecord RECORD 0
symNamePtr DS.W 1 ;offset: 0 ptr to a record in SymbolicName table
($9200)
entryPtr DS.W 1 ;offset: 2 Ptr to an ENTRY record; NULL initially
fileNum DS.B 1 ;offset: 4 file # of src file (also called module #)
flags DS.B 1 ;offset: 5 flagByte
symbolNum DS.B 1 ;offset: 6 symbol # referred to by an RLD record
externNum DS.B 1 ;offset: 7 extern number (< 255)
sizeof EQU * ;8 bytes
ENDR

and

ESDRecord RECORD 0
flags DS.B 1 ;offset: 0 flagByte
relAddr EQU * ;offset: 1 If symbol is ENTRY-type
externNum DS.B 1 ;offset: 1 If symbol is EXTRN-type
unused DS.B 1 ;offset: 2
sizeof EQU * ;3 bytes
ENDR

miniESDRec DS ESDRecord ;an instance of ESDRecord

This makes the code more readable especially when one has to deal with
a variant record.

As an aside, after upgrading to an i7 last year, I took the
opportunity to learn the basics of x86/86-x64 assembly using NASM. The
record syntax is similar to MPW assembler. Incidentally, there is a
copy of MPW IIgs tools (v1.2) on the
original Golden Orchard (GO) CDROM.

MarkLim

unread,
Apr 7, 2012, 3:57:01 AM4/7/12
to
On Mar 31, 3:42 am, A2CPM <a...@wilserv.com> wrote:
I have also disassembled the EdAsm's Linker Module.

Currently, I am porting it to MPW IIGS assembly language because of
the RECORD feature. Now I can use syntax like

ldy #XtrnRecord.externNum
lda (xtrnRecP),Y ;xtrnRecP is the zpage location $8C
sta MiniESDRec+ESDRecord.externNum

where

XtrnRecord RECORD 0
symNamePtr DS.W 1 ;offset: 0 ptr to a record in SymbolicName table
($9200)
entryPtr DS.W 1 ;offset: 2 Ptr to an ENTRY record; NULL
initially
fileNum DS.B 1 ;offset: 4 file # of src file (also called
module #)
flags DS.B 1 ;offset: 5 flagByte
symbolNum DS.B 1 ;offset: 6 symbol # referred to by an RLD record
externNum DS.B 1 ;offset: 7 extern number (< 255)
sizeof EQU * ;8 bytes
ENDR

and

ESDRecord RECORD 0
flags DS.B 1 ;offset: 0 flagByte
relAddR EQU * ;offset: 1 If symbol is ENTRY-type
externNum DS.B 1 ;offset: 1 If symbol is EXTRN-type
unused DS.B 1 ;offset: 2
sizeof EQU * ;3 bytes
ENDR

miniESDRec DS ESDRecord ;an instance of ESDRecord

This makes the code more readable especially when one has to deal with
a variant record.

As an aside, after upgrading to an i7 last year, I took the
opportunity to learn the basics of x86/x86-64 assembly using NASM. The
record syntax is similar to MPW assembler. Incidentally, there is a
copy of MPW IIgs tools (v1.2) on the original Golden Orchard (GO)
CDROM.

Mark

Bill Garber

unread,
Apr 7, 2012, 9:03:30 PM4/7/12
to

"Steven Hirsch" <snhi...@gmail.com> wrote in message news:zLidnZFcyp99QePS...@giganews.com...
This scan is now available on my web site under
'Apple II PDFs'. It is called 'EDASM_manual.pdf'.

Just go to the site, there is a Downloads link that
will get you there without needing to type a username
and/or password.

SEPA Electronics
http://www.sepa-electronics.com
Bill Garber


David Schmenk

unread,
Apr 7, 2012, 10:02:06 PM4/7/12
to Bill Garber
On Saturday, April 7, 2012 6:03:30 PM UTC-7, Bill Garber wrote:

>
> This scan is now available on my web site under
> 'Apple II PDFs'. It is called 'EDASM_manual.pdf'.
>
> Just go to the site, there is a Downloads link that
> will get you there without needing to type a username
> and/or password.
>
> SEPA Electronics
> http://www.sepa-electronics.com
> Bill Garber

Thanks! This has enabled some further (and exciting) development to PLASMA and it's ability to link & load REL files.

Dave...

David Schmenk

unread,
Apr 7, 2012, 11:16:59 PM4/7/12
to
On Saturday, April 7, 2012 7:02:06 PM UTC-7, David Schmenk wrote:
> On Saturday, April 7, 2012 6:03:30 PM UTC-7, Bill Garber wrote:
>
> >
> > This scan is now available on my web site under
> > 'Apple II PDFs'. It is called 'EDASM_manual.pdf'.
> >
> > Just go to the site, there is a Downloads link that
> > will get you there without needing to type a username
> > and/or password.
> >
> > SEPA Electronics
> > http://www.sepa-electronics.com
> > Bill Garber
>
Of course big thanks to Steve for tracking this down.

A2CPM

unread,
Apr 8, 2012, 11:52:59 PM4/8/12
to
Hi!

On Apr 7, 9:03 pm, Bill wrote:
> This scan is now available on my web site under
> 'Apple II PDFs'. It is called 'EDASM_manual.pdf'.
> Just go to the site, there is a Downloads link that
> will get you there without needing to type a username
> and/or password.
> SEPA Electronicshttp://www.sepa-electronics.com

I was QUITE surprised to find that there was NOTHING in the '.PDF'
file about a program named "LINKER". Well, not quite. On page 99,
there is this phrase: "Although no such Linker or Linking Loader is
currently available,". I'll have to admit that I'm not upset that
there's no documentation for "LINKER" because it means that the effort
I put into disassembling "LINKER" wasn't a complete waste of time.
More to follow, probably in a different thread.

Willi
0 new messages