]>
git.gir.st - Chiptunes.git/blob - foo.c
3 typedef unsigned char u8
;
6 0x84, 0x9d, 0xb0, 0x69, 0x9d, 0x84, 0x69, 0x58,
7 0x75, 0x8c, 0xb0, 0x69, 0x8c, 0x75, 0x69, 0x58
19 u8 t
;/*==Ml*/ //r26 (Xlo)
20 u8 x
;/*==Mh*/ //r27 (Xhi)
23 /*fakestack_l*/ //r30 (Zlo)
24 /*fakestack_h*/ //r31 (Zhi)
25 #define Mh x //mod3 vars
27 //http://homepage.divms.uiowa.edu/~jones/bcd/mod.shtml
33 ADC (Mh
, zero
, carry
) //Mh only holds the carry bit
60 // tempvars: `x` and `_`
71 /*MOV X_hi==x, data_hi
77 //t = (((i1&0x1f)<<8|i0)*t)>>8; //TODO
83 for (u8 loop
= 0; loop
< 8; loop
++) { //Note: t&2 always zero
85 a2
+= i1
+ ((a1
+i0
)>>8); //2. ADC a2, i1
86 a1
+= i0
; //1. ADD a1, i0
88 t
>>= 1; t
|=a1
<<7; //3. ROR t
89 a1
>>= 1;a1
|=a2
<<7; //2. ROR a1
95 RET
//TODO: replace CALL/RET with IJMP?
248 putchar(acc
<<4); //TODO
251 ADC (i2
, zero
, !i0
&&!i1
)
252 ADC (i3
, zero
, !i0
&&!i1
&&!i2
)