Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Specasm v7 #9

Merged
merged 16 commits into from
Jan 28, 2024
Merged

Specasm v7 #9

merged 16 commits into from
Jan 28, 2024

Conversation

markdryan
Copy link
Owner

The following changes were introduced in v7:

  • There are now two separate versions of Specasm, one for the 48k and 128k machines and one for the Spectrum Next.
  • The Spectrum Next version of Specasm supports all the z80n opcodes.
  • A new tool called samake has been added which can be used to create loaders for programs built with Specasm.
  • A bug was fixed in Specasm in which lines containing equ statements were not highlighted when selected.
  • Support for label subtraction (deprecated in v5) has been removed from Specasm. It's still supported by salink so existing .x files will continue to work

Fixes: #7

Label subtraction was deprecated in version v5 of Specasm and
is now removed in v7 to free up space needed for the next opcodes.
It's still supported by the linker however, so .x files created
with pre v7 versions of Specasm can still be linked with the v7
linker.  The Specasm editor will rewrite instructions that use
label subtraction to use the new expression syntax when it loads
.x files.

Signed-off-by: Mark Ryan <[email protected]>
To build/48 to prepare the way for adding a separate set of Next
build files.

Signed-off-by: Mark Ryan <[email protected]>
New binaries are created for the Next.  These are all dotn files
rather than .tap files.  All the new Next opcodes are supported
in addition to one pseudo op, nbrk, which is aliases to nextreg
2, 8 which starts the next debugger.

Next .x file and 48Kb .x files are sadly not compatible.  The
Next opcodes are not available in the 48k builds.

No new functionality is added for now to the Next dotn files,
even though more memory is available.

salink and specasm run at 28Mhz but restore the CPU to the user
selected speed on exit.  They also force the Next into the 48k
screen mode, which is restored naturally by the Next when the
programs exit.

Signed-off-by: Mark Ryan <[email protected]>
These routines are not needed as saimport and saexport use the
C runtime print routines.  This saves 300 bytes or so.

Signed-off-by: Mark Ryan <[email protected]>
A tool for automatically creating loaders, .bas or .tap, for
binaries created by salink.

Signed-off-by: Mark Ryan <[email protected]>
Might as well have one example.

cd examples/hello
./make.sh
fuse -g3x hello.tap

Signed-off-by: Mark Ryan <[email protected]>
There was no visual feedback when a block of text containing equ
statements was selected.  This is now fixed.

Signed-off-by: Mark Ryan <[email protected]>
And update the relevant issues.
And reorganise the 48kb zip file and add update the 48
BASIC files to install and uninstall samake.

Update .gitignore a little.

Signed-off-by: Mark Ryan <[email protected]>
To clear the screen to PAPER 7: BORDER 7: INK 0.  This was already
done for Specasm on a previous release.  There seems to be an issue
with ESXDOS 0.89 which sets the screen to PAPER 0: BORDER 0: INK 7
after a .launcher tap file exits.
The linker was evaluating the wrong expression and encoded the
wrong constant.

Signed-off-by: Mark Ryan <[email protected]>
This feature was never enabled on the Next and the Next version of
salink cannot process the binary file checked into the test folder.
The test was mistakenly enabled on Next builds and disabled on 48kb
builds.  We want the opposite.

Signed-off-by: Mark Ryan <[email protected]>
- Rename the Next job
- Make sure we run the sanatizer with the next instructions enabled.

Signed-off-by: Mark Ryan <[email protected]>
Re-run all files through clang-format to tidy things up a bit.

Signed-off-by: Mark Ryan <[email protected]>
And add a check to make sure that you can't load a 48k .x
file on a Next and vice-versa.

Signed-off-by: Mark Ryan <[email protected]>
@markdryan markdryan merged commit ff5ff50 into main Jan 28, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Suggestions
1 participant