Page 2 of 2
Banked RAM, ok... And why not banking Page 0 and 1 ;) ?
Posted: Tue Jan 12, 2021 11:35 pm
by BruceMcF
12 hours ago, kktos said:
Yeah, yeah, I know, one of this stupid idea.
Nevertheless, there's something to it which is appealing.... like having a local ZP and Stack.....
Having a 65C02 which can behave kinda like its big brother, the 65816....
Just a thought....
?
Build the task inside $A000-$BFFF. Do the tasks stack as an X-indexed or Y-indexed stack at $BF00. A pair of zero page vector location (source, target) that the tasks use on zero page. The bank of the next task in the chain at $A000, A, X, Y index state at $A001-$A003, S & T at $A004-$A007, the current RTI address and status at $A008/$A00A.
STA TA
: STX TX : STY TY : PLA : STA TFLAG : PLA : STA TLRET : PLA : STA THRET LDA T : STA TT : LDA T1 : STA TT1 : LDA S : STA TS : LDA S1 : STA TS1 LDA $A000 : STA $00
LDA TS1
: STA S1 : LDA TS : STA S : LDA TT1 : STA T1 : LDA TT : STA T LDA THRET
: PHA : LDA TLRET : PHA : LDA TFLAG : PHA : LDY TY : LDX TX : LDA TA : RTI
Banked RAM, ok... And why not banking Page 0 and 1 ;) ?
Posted: Wed Jan 13, 2021 1:46 am
by rje
6 hours ago, StephenHorn said:
I just feel that the 65C02 is a distinctly poor choice for a multitasking system.
That’s what makes it soooo fun to try!
Banked RAM, ok... And why not banking Page 0 and 1 ;) ?
Posted: Wed Jan 13, 2021 1:51 am
by rje
5 hours ago, Stefan said:
After programming a while for the emulator I'm generally very pleased with how things are working.
There are a lot of free ZP addresses, at least when you program in assembly. Typically even a large program really requires only a few ZP words, mostly for indirect addressing.
The bank switching works well as is, and it will work even better when moved to ZP. But I have the advantage of not having done bank switching 6502 programs before, so I have no fixed view on how this could or should work.
The interface to VERA is logical and easy to work with. I'm especially fond of the auto increment/decrement feature, making it possible to do really fast writes to the memory in VERA.
And there's a lot of RAM and ROM, making it possible to do things never imagined on 8 bit computers.
I think it really is a dream to program.
?
Sprites on VERA are more complicated than on the C64, and that causes me a bit of heartburn.
And it seems that the PSG needs a way to ... well to set decay I guess. Envelopes.... ONLY because it’s a nice way to do “gunshots” and “explosions”.
But I agree with your other points.
Banked RAM, ok... And why not banking Page 0 and 1 ;) ?
Posted: Wed Jan 13, 2021 3:37 am
by m00dawg
1 hour ago, rje said:
And it seems that the PSG needs a way to ... well to set decay I guess. Envelopes.... ONLY because it’s a nice way to do “gunshots” and “explosions”.
Us chiptune musicians would also enjoy ADSR, or some level of envelopes and decay as well
? Based on the number of channels, I expect the VERA's PSG will be between maybe an NES with the VRC6 chip and TG16 though that's just hazarding a guess. TG16 had programmable waveforms of sorts (like the WAVE channel of the GB as I recall) and that's something I'd love to see. But if it's closer to an NES that's ok too. Actually I'm not particularly picky - I'll be happy with anything generally but these features would certainly be a nice to have.
Of course I know the YM2151 is quite capable of music (and SFX) but the blending of FM and PSGs is something I find quite interesting from a musical perspective.
Banked RAM, ok... And why not banking Page 0 and 1 ;) ?
Posted: Wed Jan 13, 2021 3:41 am
by Lorin Millsap
Have you tried dropping the volume on the channel you want to fade. Or you can play samples.
Sent from my iPhone using Tapatalk
Banked RAM, ok... And why not banking Page 0 and 1 ;) ?
Posted: Wed Jan 13, 2021 8:15 pm
by rje
16 hours ago, Lorin Millsap said:
Have you tried dropping the volume on the channel you want to fade.
That's exactly what I'd have to do -- I'd have to actively manage it... which might require interrupt-driven assembly, because it would become complicated with BASIC. Not impossible, just complicated... because instead of focusing on "game logic", I'd also have to interleave sound timing. Eeek.