Looking into this at the moment: the very first step for supporting an
external assembler is providing an option to load assembled binary/HEX
files. Then you could open and run an already assembled file with valid
opcodes.

Saving to a HEX file has already been requested previously:
https://bugs.launchpad.net/gnusim8085/+bug/579344

So once these two steps have been decoupled (saving and loading HEX
files), supporting an external assembler would not be complicated to do,
if that's really what people want to do.

-- 
Assembler Enhancements
https://bugs.launchpad.net/bugs/579336
You received this bug notification because you are a member of
GNUSim8085 developers, which is subscribed to gnusim8085.

Status in gnusim8085: New

Bug description:
There are some minor things that could be improved on in the current assembler 
implementation.R Error messages are currently not very useful, in fact their 
line numbers are often apparently offset by +1.

Also, using wrong operands will often wrongly report an invalid mnemonic.

In this sense, assuming that it would be difficult to improve such things in 
the short run, it might make sense to provide a separate, more detailed, log 
that contains more information about the assembly process. So that each step of 
the assembler is interactively shown:

1: found comment, skipping to next line
2: found supported mnemonic "mvi", (expecting reg,immediate): found reg,reg
3: found unknown token "foo"

Something like this would at least have the potential to allow users to see 
clearly where the assembler stopped succeeding with assembling the file.

Also, other 8085 assemblers often support direct ways to provide numbers using 
a different notation:
  mvi a,14h
  mvi a,14d
  mvi a,01110011b

Also, the "db" directive usually also supports providing the corresponding 
bytes as quoted strings of characters:

data: db 'hello world',0A,0D,'$'
dat2: db "foo"

In its current form the assembler also isn't able to compute offsets for labels 
defined after the position of the current instruction:

  mvi a,5
start: nop
  cmp 5
  jz exit ;ERROR: exit not known because no multipass support in assembler
exit:



_______________________________________________
Mailing list: https://launchpad.net/~gnusim8085-devel
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~gnusim8085-devel
More help   : https://help.launchpad.net/ListHelp

Reply via email to