utz82 / PC1403-Music-Routines

1-bit music routines for the Sharp PC-1403 Pocket Computer
Creative Commons Zero v1.0 Universal
8 stars 2 forks source link

PC-1350 port with the AS61860 assembler d8ced06 #2

Closed genivia-inc closed 3 years ago

genivia-inc commented 3 years ago

Added pc-1350 subdir with updated asm sources, updated xm2osk.pl, updated readme, new ihx converters, and new retargeting file target.h intended for porting to other SHARP PC.

utz82 commented 3 years ago

First of all, sorry for the late reply, and thanks a lot for your work!

I'm now thinking that since your version also builds for the PC-1403, we could just replace the original version, instead of adding it in a new subdir. Replacing yasm with as61860 is fine by me. The only issue I see is that this will deprive Windows users of a convenient workflow, because of the dependency on make. Then again probably nobody is using this anyway, Windows or not. Either way, if you'd be willing to change the PR so the original and your version are merged, that'd be great. Otehrwise, I'll take the PR in its current form and clean up later.

In any case, I'd ask you for a couple of changes before pulling, though. I think play.bas and play.bin should be removed from version control. Probably easiest add a .gitignore for all the build artifacts at toplevel. (I had only just started to learn programming back when I wrote this, and I didn't know better back then).

Also, how about generating target.h via the makefile, so that users can set the target when invoking make, ie. make and make pc1403 will build for 1403, and make 1350 will build for the latter machine?

genivia-inc commented 3 years ago

I'm now thinking that since your version also builds for the PC-1403, we could just replace the original version

I will change the PR.

I think play.bas and play.bin should be removed from version control.

If we retarget more machines in one dir, then sure it makes sense to remove these.

Also, how about generating target.h via the makefile, so that users can set the target when invoking make, ie. make and make pc1403 will build for 1403, and make 1350 will build for the latter machine?

That's a nice idea. I will make the change. I will work on that next week.

genivia-inc commented 3 years ago

I've updated the makefile and readme to support specific machine builds. I've also reviewed the code again and made a few minor changes (see below). Running the sound over a speaker connected to a PC-1350 works, but the sound is not 100% the same as your post here https://soundcloud.com/irrlicht-project/osaka-ii-test-sharp-pc-1403

Because I worried that it wasn't exactly the same, I double checked the code and compared it to your original but could not find any differences that could be a problem. I even put back anim 0 which turns off the display. Strangely, that affects the sound too, so I'm now more picky to keep things the same. I've introduced macros BZHI and BZLO to set the orim and anim values of the buzzer port throughout main.asm, so experimentation is a bit easier. One explanation of the difference on my side is that my CE-126P cassette interface output port has been more quiet than it used to be, at least 50% less volume. Perhaps an opamp is not working properly after 45 years.

utz82 commented 3 years ago

That looks excellent to me. Thanks a lot for your hard work!