]>
git.gir.st - Chiptunes.git/blob - foo.c
73574255ba416d442b06e912af100cac8e5cfe4d
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 `_`
70 //TODO: directly load address to mul_* routine and jump to it?
72 /*MOV X_hi==x, data_hi
84 //sorted by ocurrence, then longest cycle count first
99 mul_58
: // 0101 1000 (24cy)
122 mul_69
: // 0110 1001 (26cy)
147 mul_75
: // 0111 0101 (28cy)
174 mul_84
: // 1000 0100 (22cy)
195 mul_8c
: // 1000 1100 (24cy)
218 mul_9d
: // 1001 1101 (28cy)
245 mul_b0
: // 1011 0000 (22cy)
268 LSR (a2
) //final shift is a common operation for all
275 RET
//TODO: replace CALL/RET with IJMP?
429 putchar(acc
<<4); //TODO
432 ADC (i2
, zero
, !i0
&&!i1
)
433 ADC (i3
, zero
, !i0
&&!i1
&&!i2
)