This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Messages - utz
Pages: 1 2 [3] 4 5 ... 11
31
« on: June 02, 2014, 02:44:26 pm »
Awesome lineup! If you like, you can add some of my music, too - see soundcloud link in sig.
32
« on: April 13, 2014, 05:46:05 am »
Thanks for checking it out, guys. I agree, the audio could have been mixed better. Maybe the guy will upload a better render on soundcloud. Anyway, this was just a really quick project. Tronimal was over in Berlin for a concert, and decided to compose and record this in the few spare hours he had.
33
« on: April 11, 2014, 07:57:33 pm »
Hey friends! This is TI calculator music made with three calculators. (TI-82, TI-83 and TI-84+). Software by utz, Music by Tronimal. Have fun!
34
« on: March 29, 2014, 05:01:20 am »
@JamesV: Yep, I guess that's what I have to do. It'd be nice to know the actual start address of the user code, so I could use a debugger to trace the error. But Usgard's docs don't say anything about that. Guess it depends on the ROM used. And yes, the "keyhandler" part is supposed to just wait for any of those keys.
@DJ_O: Don't get too exited, I just want to port my 1-bit sound routines to the 85 and 86. Actual games will have to be coded by somebody else...
35
« on: March 28, 2014, 07:13:03 pm »
Oh, thanks for the quick reply, guys. @Art_of_camelot: Haha, I have nearly all doc files from ticalc backed up on my computer, but unfortunately they don't seem to have an 85-ports.txt @JamesV: Ok, I'm just gonna dump the code here, it's not really a secret And actually the keyhandler barely qualifies as such. Not sure if it's actually the part causing problems. If I comment it out the program still doesn't run, but it doesn't give me the "ERROR 20 GRAPH RANGE". #include "usgard.h"
.org 0
.DB "HUBY TI 0.1", 0 #define db .byte #define dw .word
;Huby beeper music engine by Shiru 04'11 ;Two channels of tone, no volume, global speed ;One drum, replaces note on the first channel ;The main feature of this engine is the size, just 100 bytes ;Feel free to do whatever you want with the code, it is PD ;modified for Z80 TI calcs by utz, Akareyon, and calc84maniac ;well, unfortunately it's more than 100 bytes now :(
di call &begin ex ei ret begin ld hl,&musicData call &play ret play ld e,(hl) ;read speed word inc hl ld d,(hl) inc hl ld (&speed),de ;store it ld e,(hl) ;read patterns offset inc hl ld d,(hl) ;it will be always in DE, and HL is order list pointer now
readPos inc hl ld a,(hl) ;read first byte of order list or a ret z ;if it is zero, it is end of the song inc hl push hl ;store order list pointer push de ;store patterns offset ld l,(hl) ;read second byte of order list ld bc,2*256 ;calculate addresses of two patterns read ld h,c ;pattern number*8 add hl,hl add hl,hl add hl,hl add hl,de ;add patterns offset push hl ;store pattern address ld l,a ;now second address djnz &read exx pop hl ;restore pattern addressed in alternative set pop de
ld b,8 ;play 8 rows readRow ld a,(hl) ;read first note inc hl ;increase first pattern pointer ex af,af' ld a,(de) ;read second note inc de ;increase second pattern pointer exx ld h,a ex af,af' ld l,a cp $2c ;if first note is $2c, it is drum sound jr z,$+3 xor a ld (&slide),a speed .EQU $+1 ld bc,0 ;di
soundLoop xor a ;clear carry and set A to zero dec e ;counter of first channel jr nz,&l1 ld e,l ;reload if overflow sub l ;and set carry if note is not zero (mute) slide .EQU $ nop ;slide for drum l1 dec d ;counter of second channel jr nz,&l2 ld d,h ;reload if overflow sub h ;and set carry if note is not zero (mute) l2 sbc a,a ;if carry, A=255, otherwise A=0
xor %11111100 ;+ a=$ff -> a=$c0, a=0 -> a=$fc and %00111100 add a,$c0
out (7),a ;11 27 out (7),a out (7),a out (7),a ;+ 4x to compensate higher cpu speed
xor a ;+ new keyhandler out (1),a in a,(1) ;read keyboard cpl bit 6,a jr nz,&l3 ;if any key is pressed, exit loop dec bc ld a,b or c jr nz,&soundLoop ;113/123t + not anymore
l3 exx jr nz,$+4 ;if any key was pressed, break loop djnz &readRow
pop de pop hl jr z,&readPos ;if no key was pressed, continue
ret
musicData #include "ti1bit/huby/music.asm"
.end
36
« on: March 28, 2014, 06:02:19 pm »
So, I'm planning to do some TI-85 programming. I know most of you omnimagicians aren't really concerned with that old piece of j***, but maybe some of the more senior members can shed some light. So, my questions for the time being: - What is the recommended shell? I'm using Usgard at the moment, but I'm not really happy with it. The build chain seems quite convoluted and unflexible. Also, having to put an & in front of all labels makes writing platform independant code very tedious. So, are there any good alternatives? - Where can I find information on the 85 ports? I thought they would be the same as on the 86 but seems that's not the case, see question #3. - Coming from TI-82, are there any special quirks to watch out for (other than the memory mapped display)? For instance, my custom keyhandler that works nicely on 82 through 84+ flat out crashes on 85, and I don't really understand why. Thanks in advance
37
« on: March 19, 2014, 10:46:43 am »
Not my work, but that's how you do MIDI in the 21st century: jk, I dig tiny men and city of riches.
38
« on: March 19, 2014, 10:31:38 am »
Sounds rather like you broke something by installing/removing stuff. Could be a virus, too, but it would be a very crappy one - normally virus programmers want the user not to notice, so they'll make sure they don't break obvious stuff. Still, an antivir scan can't hurt.
39
« on: March 04, 2014, 11:06:57 am »
I like the simplicity and clean looks of the new design. Gives the site a more "serious" touch. But I miss the news roll and the "recent posts" list on the hp. Especially with the removing the news roll omni kinda shoots itself in the leg, because if you're not logged in, you basically have no means of telling what this site is about.
Btw I didn't receive a notification either.
40
« on: February 03, 2014, 11:51:18 am »
I'm using a SilverLink + TiLP for my TI-85. Works like a charm.
41
« on: February 02, 2014, 08:32:21 am »
Full ADSR is nearly impossible to pull off with Pulse Interleaving (which is most likely the synthesis method used here). You could, however, support at least 2 different volume levels by allocating non-equal time slots to the channels. The difference needs to be pretty pronounced though, because the human ear perceives volumes in a logarithmic way. So, just talking about 2 channels, distribute timing so it spends approx. 2 thirds on the first channel and 1 third on the second one, and you get a decent volume difference, good enough for creating nice echos and similar effects. Hope that explanation wasn't too convoluted... ed: Check this track of mine, about 55 seconds in. This is a 3-channel pulse interleaving engine with pwm support and 3 different volume levels. 1st channel frame is about half as long as the 2nd one, which is in turn half as long as the 3rd channel frame.
42
« on: February 02, 2014, 05:42:08 am »
Hotdammit Hayleia, that piano roll editor looks pretty awesome, congrats. Just one question, how do I delete an individual note?
43
« on: February 01, 2014, 11:30:18 am »
Supermarkets over here are already selling chocolate bunnies, so according to my calculations Easter is happening ... pretty damn soon enough :p
44
« on: January 21, 2014, 02:24:46 pm »
Hotdamn, how did I miss this? Outstanding achievement, fb39ca4.
45
« on: January 17, 2014, 07:19:14 pm »
It doesn't sound like fewer, it is fewer. Because you simply can't output more than 1 bit on a 1-bit DAC (well, technically, 2x1-bit, but anyway...), even though you may very well be sending 8 bits. Which doesn't mean much of course - after all CDs use 1-bit DAC as well
Pages: 1 2 [3] 4 5 ... 11
|