Comments (18)
from romwbw.
Hi,
git branch management can be a challenge. I am not sure your process, and apologies if this is of no interest (and the long post) - but If it helps, this is how I do it.
First I only use the cli -- no gui interfaces - but the concept is the same.
After forking a repo on github, and cloning it locally. I setup the upstream remotes on the repo. (github have excellent cli help pages)
git remote add upstream [email protected]:wwarthen/RomWBW.git
git remote -v # to see your remote urls - typicaly have 2 - origin (my repo) and upstream (Wayne's repo)
These are my remotes:
origin [email protected]:vipoo/RomWBW.git (fetch)
origin [email protected]:vipoo/RomWBW.git (push)
upstream [email protected]:wwarthen/RomWBW.git (fetch)
upstream [email protected]:wwarthen/RomWBW.git (push)
Then i make sure i have the same branches in my repo - and i never commit to these branches. They are just used to track the official commits.
To get Waynes latest commits - i do (https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/syncing-a-fork)
git fetch upstream
git checkout dev
git merge upstream/dev
git push
This gives me a dev branch reference. As i said, never commit to this branch.
For opensource stuff a feature/PR branch can be very helpful in keeping it simple. When i start a new feature, i do this:
git checkout dev
git checkout -b my-new-feature # create a new brach for my work
git push # push this branch to my repo
Then i work on this branch. When i am ready to do a PR - and this is important, i rebase to the latest dev (I dont merge in changes and create confusing merge commits)
git fetch upstream
git checkout dev
git merge upstream/dev
git push
git checkout feature/my-new-feature
git checkout -b pr/my-new-feature
git rebase master # merge in all upstream changes - fix conflict
ensure my stuff still works!
git push
Now i make a PR from this new branch (pr/my-new-feature
).
Cleanup
git checkout dev
git branch -D feature/my-new-feature
git push origin --delete feature/my-new-feature
And when the PR is merged - i can then delete the PR branch.
It helps a lot that these PR branches dont need to live very long - as Wayne seem to very quickly get them merged - I might change my approach if the PR had to sit for a few weeks.
from romwbw.
In regards to the duration stuff - I am not sure I still have the code - i transformed it and applied it directly in the bbcbasic fork i am working on - it works by polling the timer value - there is no HBIOS interrupt signal for just the timer.
Yes my duration code did have a que logic in there - but that could have been removed - (this is kind of a que of just 1 item). The que logic was not complicated - just a little round buffer thing.
I am not sure how you are planning to go with the duration implementation - so maybe i am missing something or making more complicated than need (this happen more often that i would like to admit!)
For a duration, that is a set and forget - that would imply the application would not be able to know when the duration is completed - so would not be able to do anything at the completion of the duration - it would not be able to schedule another command for example - polling might work - but it be complicated i would think.
Also, have to manage the overlapping calls (eg: Schedule started on 1 channel, then application starts note on another channel - with or without duration value) - need to track current schedule channel. Would duration get reset on call to play? -- the vol and period do not get reset on PLAY at the moment?
So for the simple 'beep for 1 second' scenarios this could be handy. But application could also just start a note - wait a second - and stop the note.
When i was building the duration logic, this all starting making me wonder of the boundary between (BIOS, OS and application) - I appreciate its very blurry on these platforms)
I am very new to all this... so i know i need to get more wiser about designing bios/os level stuff.
These are just my ramblings - so feel free to correct me - or just ignore me!
Cheers
Dean
from romwbw.
Given i have less time to work on this - and to avoid creating more merge challenges - I can focus on other coding. But i am happy to help test if you want.
Cheers
Dean
from romwbw.
That's a pretty slick GitHub management process Dean. It looks a little complicated at first, but I bet it becomes pretty intuitive after getting used to it. My situation is not the same as you guys deal with, but I think I may adopt some of this for certain scenarios of mine.
from romwbw.
With respect to the duration stuff, I had the impression that there would conceptually be two ways to "play" a sound.
- Play the sound for the specified duration, stop the sound, then return to the caller. Essentially, a "blocking" call.
- Start playing the sound and return immediately to the caller. The sound would continue to play until the caller made another call to either stop the sound or switch to a different sound.
A potential variation of #1 would be allowing the caller to specify that the sound is not stopped after the duration elapses. This would allow the caller to make sequential calls with a duration specified without micro gaps in the playback.
The DURATION function call can do all this. I assume a duration of zero would mean return immediately to caller. The only thing I am not sure about is how to specify whether to stop the sound or not after playing for the specified duration.
I think this represents a nice balance between complexity and capability.
Thanks,
Wayne
from romwbw.
from romwbw.
from romwbw.
Some of those commits may have been my lousy usage of git desktop and the nightmare I have had (created) trying to keep everything in sync! Sorry about that. I've done a git reset so hopefully it will be better. I think I see the mistake I have made ... I am using the AY_CLK = 3579545 (for my EBC-SCG) which is twice what it should be. Working on a fix now.
Hi @b1ackmai1er ,
I am trying to close out some long outstanding issues in the GitHub repostory. It sounds like you were working on a fix for this, but I am not clear if it was ever completed. Do you remember?
Thanks,
Wayne
from romwbw.
HI Wayne, No I broke something but cannot remember what. I will order an RC2014 sound module and work to close this.
Best Wishes Phil
from romwbw.
No worries. Since it appears to still be an outstanding issue, I will leave the issue open here.
There is no rush to resolve this. In fact, I don't know that it is worth having you order hardware just to work on it. I may try to recreate the issue myself since I do have the appropriate hardware. I'm just not sure I know enough to identify the issue.
Thanks,
Wayne
from romwbw.
from romwbw.
from romwbw.
Hi Phillip With these mods is the Z80 MBC able to play simple tunes and/or multiple tones on start up? Like a start up sound more than the start up beep we now have? That would be a nice modification. Play "Daisy" from 2001 when HAL was being deactivated... :-) Thanks, Andrew Lynch
Phil can correct me, but I think that the current speaker driver is able to play a single note for one second. I think you can select the note, but the one second duration is fixed. Since the duration is fixed at one second, I don't think there is any reasonable way to play a "tune".
Thanks, Wayne
from romwbw.
from romwbw.
from romwbw.
Ths
from romwbw.
Have observed some issues (used my test scripts - and tested on my rig) - not had a chance to fully investigate.
I notice there has been some changes for the AY driver's implemention of NOTE.
I am not sure i understand, and dont know what configuration i need to adjust to align with my configuration - because now I am out an octave... - it plays an octave lower, than the stated value in the docs. What would be the recommend approach to adjust this?
I think the off-by-one octave issue with the AY driver has been corrected in commit b2e1294.
-Wayne
from romwbw.
Related Issues (20)
- SD card with PIO protocol error HOT 12
- XM is not working since 3.2.0 HOT 5
- Build failure on Raspberry Pi4 64-bit HOT 34
- XON/XOFF support HOT 2
- RPi4: Build failure "zxcc: Cannot locate bios.bin" when path depth is less than 4 levels HOT 6
- Hi-Tech C compiler generates error "Can't execute $EXEC". Is it a bug or a feature? HOT 17
- SC126 Z180: CP/M 2.2 drive letters assigned to missing SD card HOT 2
- hd1k_combo.img is too small in size for large media, I: and J: drives are not initialised HOT 23
- The RTC maybe set to UTC instead of local time HOT 17
- v3.4.0-dev.9 regression: SC126: minicom shows garbage characters on connection HOT 26
- Text file corruption from FAT32 to CP/M, is it a bug or a feature ? HOT 15
- COPY.COM is in the CP/M 2.2 ROM but is missing from the CP/M 2.2 slice HOT 4
- I am working on Linux. Since Version 3.2.0 it is no longer working. First Problem is with zxcc. I am getting an error msg zxcc: Cannot locate bios.bin If I change to this path and do a make twice, it works. Second problem is it no longer generates die ROM-Images. It stops in HBIOS and asks for the he platform. I think there is a problem in the Build.sh which should call itself in a loop, but that doesn't work. HOT 5
- XMODEM issue with RC130 and versions after 3.0.1 HOT 2
- Typo in User Guide HOT 5
- Where to modify number of drives/slices for SD card HOT 3
- CLS returns capital H char on pigfx terminal HOT 8
- diskdefs and combo image HOT 4
- IM MODE 0,1 and 2 (and CTC) HOT 5
- DiskList.txt is missing from the Binary directory HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from romwbw.