Jump to content
IGNORED

[Aquarius] trying to create 16kb rom, unsuccessfully


Recommended Posts

The cartridge header is fine; if it were invalid, the Aquarius would simply drop back to BASIC. I haven't looked at it long enough to determine exactly what's happening, but your program is disabling interrupts at $E010 and then enabling them again at $E01F, which seems to be causing it to become locked into an infinite loop when an interrupt is requested.

 

Aquarius BASIC allows the user to call a machine language routine from within a BASIC program with the USR() command. The address of this routine, and a command to jump to it automatically, is stored by BASIC in a specific location in RAM (starting at $3803), and the Aquarius OS's interrupt handler (at address $0038) simply jumps to this location whenever an interrupt is requested. But the RAM is initially empty when the Aquarius boots from the cartridge, so your program is apparently triggering an interrupt, then jumping to $0038, then jumping to $3803, then executing NOPs throughout the empty RAM until it returns to the start of the cartridge again at $E000, in an infinite loop. I was able to patch it by replacing the DI and EI instructions (at $E010 and $E01F, respectively) with NOPs.

 

The program works as-is in Virtual Aquarius, however, so either Virtual Aquarius is allowing you to do something that doesn't work on the real hardware, or MESS is not allowing you to do something that does work on the real hardware. I suspect the former, but I'd have to put the program on a cartridge to find out for sure.

Link to comment
Share on other sites

thanks! ( example01d2_16kbtest_working_patchingdieibytes.zip in the attachment - adding some patching dd command lines at the .sh compiling script for doing that - i actually had no idea that interrupts would affect that, and these di and ei bytes are some "garbage" created by the ZX-Basic compiler )

 

btw, the weird part is that the 8kb version ( example01c5_delay_keymap.zip in the attachment ) works, even with these di and ei bytes - i guess that somehow the size of the cartridge affects on the booting behaviour related to these patched bytes, or perhaps the emulation is not that accurate?

 

i'm really curious about how both might behave in the real hardware - i guess that i would have to patch the 8kb version as well, even having it working on Mess emulator?

example01d2_16kbtest_working_patchingdieibytes.zip

example01c5_delay_keymap.zip

Link to comment
Share on other sites

 

Did you map the glyphs that were the same between the Aquarius and MZ-700 or did you just use letters and numbers?

 

edited by hand, the binary dumps (1984 bytes at 0x3028) were created from my own editor (i fixed some bugs now, i think i posted a previous version last year) - while i'm not yet using RexPaint and coding converters for it

 

this editor (way, way more rudimentary than RexPaint) runs on sdlBasic, and the file browser uses Zenity (for accessing file browsing via command line)

AquariusDisplayEditorX2_20140708081811.sdlbas.zip

Link to comment
Share on other sites

 

made a slideshow (7 pictures * 2kb - converted from mz700) for testing the 16kb rom more effectively

 

That is really awesome.

I get a black screen on your Aquarius Display Editor SDL thing. Zenity dependency?

I can't find a straight forward download of that.

Link to comment
Share on other sites

 


Nice job indeed :)

thanks! :)

 

 


That is really awesome.

I get a black screen on your Aquarius Display Editor SDL thing. Zenity dependency?

I can't find a straight forward download of that.

thanks! :)

Zenity is for acesssing gtk gui stuff via command line - it is available from Debian and Ubuntu official repositories, and very probably also on repositories from other Linux distributions (i have no idea if something equivalent exists for other operating systems)

The black screen i don’t know what causes it, it is supposed to be random

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...