0000 029f 0010 jmp 0x0010 0002 0000 nop 0003 0000 nop 0004 02ff rti 0005 0000 nop 0006 02ff rti 0007 0000 nop 0008 02ff rti 0009 0000 nop 000a 02ff rti 000b 0000 nop 000c 02ff rti 000d 0000 nop 000e 02ff rti 000f 0000 nop // Entry void 0010_Entry() { 0010 1302 sbset #0x02 0011 1303 sbset #0x03 0012 1204 sbclr #0x04 0013 1305 sbset #0x05 0014 1306 sbset #0x06 0015 8e00 set16 0016 8c00 clr15 0017 8b00 m0 0018 009e ffff lri $AC0.M, #0xffff 001a 1d1e mrr $WR0, $AC0.M 001b 1d3e mrr $WR1, $AC0.M 001c 1d5e mrr $WR2, $AC0.M 001d 1d7e mrr $WR3, $AC0.M 001e 0092 00ff lri $CR, #0x00ff 0020 8100 clr $ACC0 0021 009f 1000 lri $AC1.M, #0x1000 0023 0080 0000 lri $AR0, #0x0000 0025 005f loop $AC1.M 0026 1b1e srri @$AR0, $AC0.M // clear dram 0027 26ff lrs $AC0.M, @CMBL 0028 16fc 8888 si @DMBH, #0x8888 002a 16fd 1111 si @DMBL, #0x1111 // SENDMAIL 0x88881111 002c 26fc lrs $AC0.M, @DMBH 002d 02a0 8000 andf $AC0.M, #0x8000 002f 029c 002c jlnz 0x002c } void 0031_MainLoop() { 0031 8100 clr $ACC0 0032 8900 clr $ACC1 0033 26fe lrs $AC0.M, @CMBH 0034 02c0 8000 andcf $AC0.M, #0x8000 0036 029c 0031 jlnz 0x0031 // wait for mail 0038 27ff lrs $AC1.M, @CMBL 0039 00ff 0345 sr @0x0345, $AC1.M 003b 1ffe mrr $AC1.M, $AC0.M 003c 0340 00ff andi $AC1.M, #0x00ff 003e 00ff 0344 sr @0x0344, $AC1.M 0040 1479 lsr $ACC0, #-7 0041 0240 007e andi $AC0.M, #0x007e 0043 0200 0062 addi $AC0.M, #0x0062 0045 00fe 0343 sr @0x0343, $AC0.M 0047 1c1e mrr $AR0, $AC0.M 0048 170f jmpr $AR0 // jump on CMD? 0049 009e 8000 lri $AC0.M, #0x8000 004b 00dc 0343 lr $AC0.L, @0x0343 004d 02bf 005a call 005a_SendMail(AC0.M,AC0.L) // sendmail 0x8000???? 004f 029f 0031 jmp 0x0031 } void 0051_WaitForMailAndStoreIt(DEST $AR0) { 0051 26fe lrs $AC0.M, @CMBH 0052 02c0 8000 andcf $AC0.M, #0x8000 0054 029c 0051 jlnz 0x0051 0056 24ff lrs $AC0.L, @CMBL 0057 1b1e srri @$AR0, $AC0.M 0058 1b1c srri @$AR0, $AC0.L 0059 02df ret } void 005a_SendMail(AC0.M,AC0.L) { 005a 2efc srs @DMBH, $AC0.M 005b 2cfd srs @DMBL, $AC0.L 005c 26fc lrs $AC0.M, @DMBH 005d 02a0 8000 andf $AC0.M, #0x8000 005f 029c 005c jlnz 0x005c 0061 02df ret } //CMDs 0062 029f 0049 jmp 0x0049 // CMD_0 0064 029f 02bd jmp 0x02bd // CMD_1 0066 029f 0470 jmp 0x0470 // CMD_2 0068 029f 0031 jmp 0x0031 // CMD_3 006a 029f 00df jmp 0x00df // CMD_4 006c 029f 00f1 jmp 0x00f1 // CMD_5 006e 029f 05bb jmp 0x05bb // CMD_6 0070 029f 056f jmp 0x056f // CMD_7 0072 029f 05d7 jmp 0x05d7 // CMD_8 0074 029f 059f jmp 0x059f // CMD_9 0076 029f 0741 jmp 0x0741 // CMD_A 0078 029f 0618 jmp 0x0618 // CMD_B - jump to IROM area (0x8644) 007a 029f 0203 jmp 0x0203 // CMD_C { 007c 193e lrri $AC0.M, @$AR1 007d 193c lrri $AC0.L, @$AR1 007e 2fcd srs @DSPA, $AC1.M 007f 0f00 lris $AC1.M, #0x00 0080 2fc9 srs @DSCR, $AC1.M // DMEM->CPU 0081 2ece srs @DSMAH, $AC0.M 0082 2ccf srs @DSMAL, $AC0.L 0083 1fe0 mrr $AC1.M, $AR0 0084 1501 lsl $ACC1, #1 0085 2fcb srs @DSBL, $AC1.M 0086 02bf 008f call 0x008f 0088 02df ret } { 0089 193e lrri $AC0.M, @$AR1 008a 193c lrri $AC0.L, @$AR1 008b 2fcd srs @DSPA, $AC1.M 008c 0f01 lris $AC1.M, #0x01 008d 029f 0080 jmp 0x0080 } { 008f 26c9 lrs $AC0.M, @DSCR 0090 02a0 0004 andf $AC0.M, #0x0004 0092 029c 008f jlnz 0x008f 0094 02df ret } { 0095 193e lrri $AC0.M, @$AR1 0096 193c lrri $AC0.L, @$AR1 0097 00ff ffcd sr @DSPA, $AC1.M 0099 0f00 lris $AC1.M, #0x00 009a 00ff ffc9 sr @DSCR, $AC1.M 009c 00fe ffce sr @DSMAH, $AC0.M 009e 00fc ffcf sr @DSMAL, $AC0.L 00a0 1fe0 mrr $AC1.M, $AR0 00a1 1501 lsl $ACC1, #1 00a2 00ff ffcb sr @DSBL, $AC1.M 00a4 02df ret } void 00a5_WaitForDMAend() { 00a5 00de ffc9 lr $AC0.M, @DSCR 00a7 02a0 0004 andf $AC0.M, #0x0004 00a9 029c 00a5 jlnz 0x00a5 00ab 02df ret } void 00ac_AccZeldaTypeRead() { 00ac 193e lrri $AC0.M, @$AR1 00ad 193c lrri $AC0.L, @$AR1 00ae 0240 7fff andi $AC0.M, #0x7fff 00b0 02bf 00ba call 00ba_AccSetup() 00b2 007a 00b8 bloop $AX0.H, 0x00b8 00b4 26d3 lrs $AC0.M, @UnkZelda 00b5 1b3e srri @$AR1, $AC0.M 00b6 0000 nop 00b7 0000 nop 00b8 0000 nop 00b9 02df ret } void 00ba_AccSetup() { 00ba 1c3f mrr $AR1, $AC1.M 00bb 009f 0005 lri $AC1.M, #0x0005 00bd 2fd1 srs @SampleFormat, $AC1.M // reads will be u8 00be 1f5e mrr $AX0.H, $AC0.M 00bf 1f1c mrr $AX0.L, $AC0.L 00c0 2ed4 srs @ACSAH, $AC0.M 00c1 2cd5 srs @ACSAL, $AC0.L 00c2 8900 clr $ACC1 00c3 1fa0 mrr $AC1.L, $AR0 00c4 4c00 add $ACC0, $ACC1 00c5 0200 0030 addi $AC0.M, #0x0030 00c7 2ed6 srs @ACEAH, $AC0.M 00c8 2cd7 srs @ACEAL, $AC0.L 00c9 1fda mrr $AC0.M, $AX0.H 00ca 1f98 mrr $AC0.L, $AX0.L 00cb 147f lsr $ACC0, #-1 00cc 2ed8 srs @ACCAH, $AC0.M 00cd 2cd9 srs @ACCAL, $AC0.L 00ce 1f40 mrr $AX0.H, $AR0 00cf 02df ret } void 00d0_AccZeldaTypeWrite() { 00d0 193e lrri $AC0.M, @$AR1 00d1 193c lrri $AC0.L, @$AR1 00d2 0260 8000 ori $AC0.M, #0x8000 00d4 02bf 00ba call 00ba_AccSetup() 00d6 007a 00dd bloop $AX0.H, 0x00dd { 00d8 193e lrri $AC0.M, @$AR1 00d9 2ed3 srs @UnkZelda, $AC0.M 00da 0000 nop 00db 0000 nop 00dc 0000 nop 00dd 0000 nop } 00de 02df ret } { 00df 0080 0346 lri $AR0, #0x0346 00e1 02bf 0051 call 0x0051 00e3 02bf 0051 call 0x0051 00e5 0081 0346 lri $AR1, #0x0346 00e7 00df 0349 lr $AC1.M, @0x0349 00e9 0340 ffff andi $AC1.M, #0xffff 00eb 00c0 0345 lr $AR0, @0x0345 00ed 02bf 007c call 0x007c 00ef 029f 0049 jmp 0x0049 } { 00f1 0080 0346 lri $AR0, #0x0346 00f3 02bf 0051 call 0x0051 00f5 02bf 0051 call 0x0051 00f7 0081 0346 lri $AR1, #0x0346 00f9 00df 0349 lr $AC1.M, @0x0349 00fb 0340 ffff andi $AC1.M, #0xffff 00fd 00c0 0345 lr $AR0, @0x0345 00ff 02bf 0089 call 0x0089 0101 029f 0049 jmp 0x0049 } { 0103 0092 00ff lri $CR, #0x00ff 0105 2fd1 srs @SampleFormat, $AC1.M 0106 0340 0003 andi $AC1.M, #0x0003 0108 1f7f mrr $AX1.H, $AC1.M 0109 1f5e mrr $AX0.H, $AC0.M 010a 1f1c mrr $AX0.L, $AC0.L 010b 0200 0010 addi $AC0.M, #0x0010 010d 2ed4 srs @ACSAH, $AC0.M 010e 2cd5 srs @ACSAL, $AC0.L 010f 8900 clr $ACC1 0110 1fa0 mrr $AC1.L, $AR0 0111 4c00 add $ACC0, $ACC1 0112 0200 0030 addi $AC0.M, #0x0030 0114 2ed6 srs @ACEAH, $AC0.M 0115 2cd7 srs @ACEAL, $AC0.L 0116 1fda mrr $AC0.M, $AX0.H 0117 1f98 mrr $AC0.L, $AX0.L 0118 1ffb mrr $AC1.M, $AX1.H 0119 7900 decm $AC1.M 011a 02ca lsrn 011b 2ed8 srs @ACCAH, $AC0.M 011c 2cd9 srs @ACCAL, $AC0.L 011d 02df ret } //DSPLLE errors here!!! readw/writes from 0x3??? { 011e 1c23 mrr $AR1, $AR3 011f 197e lrri $AC0.M, @$AR3 0120 191b lrri $AX1.H, @$AR0 0121 d858 mulc'l $AC1.M, $AX1.H : $AX1.H, @$AR0 0122 1128 0128 bloopi #0x28, 0x0128 0124 dcd3 mulcac'ld $AC1.M, $AX1.H, $ACC0 : $AX0.L, $AX1.H, @$AR3 0125 6231 movr's $ACC0, $AX1.L : @$AR1, $AC0.M 0126 dcd3 mulcac'ld $AC1.M, $AX1.H, $ACC0 : $AX0.L, $AX1.H, @$AR3 0127 6231 movr's $ACC0, $AX1.L : @$AR1, $AC0.M 0128 4900 addax $ACC1, $AX0 0129 02df ret } { 012a 8f00 set40 012b 1c03 mrr $AR0, $AR3 012c 00db 038e lr $AX1.H, @0x038e 012e 009a 0004 lri $AX0.H, #0x0004 0130 1978 lrri $AX0.L, @$AR3 0131 a843 mulx'l $AX0.L, $AX1.H : $AX0.L, @$AR3 0132 ae00 mulxmv $AX0.L, $AX1.H, $ACC0 0133 1128 0138 bloopi #0x28, 0x0138 0135 38c3 asrnrx'l $ACC0, $AX0.H : $AX0.L, @$AR3 0136 ae30 mulxmv's $AX0.L, $AX1.H, $ACC0 : @$AR0, $AC0.M 0137 38c3 asrnrx'l $ACC0, $AX0.H : $AX0.L, @$AR3 0138 ae30 mulxmv's $AX0.L, $AX1.H, $ACC0 : @$AR0, $AC0.M 0139 8e00 set16 013a 02df ret } { 013b 00f9 0361 sr @0x0361, $AX1.L 013d 1fc0 mrr $AC0.M, $AR0 013e 0200 fffc addi $AC0.M, #0xfffc 0140 1c1e mrr $AR0, $AC0.M 0141 1c5e mrr $AR2, $AC0.M 0142 0083 0424 lri $AR3, #0x0424 0144 197e lrri $AC0.M, @$AR3 0145 197f lrri $AC1.M, @$AR3 0146 80a2 nx'sl : $AC0.M, $AX0.H 0147 64a3 movr'sl $ACC0, $AX0.H : $AC1.M, $AX0.H 0148 6530 movr's $ACC1, $AX0.H : @$AR0, $AC0.M 0149 1b1f srri @$AR0, $AC1.M 014a 1c02 mrr $AR0, $AR2 014b 8100 clr $ACC0 014c 00de 0402 lr $AC0.M, @0x0402 014e 00fe 0362 sr @0x0362, $AC0.M 0150 1474 lsr $ACC0, #-12 0151 1f7e mrr $AX1.H, $AC0.M 0152 1f3c mrr $AX1.L, $AC0.L 0153 8900 clr $ACC1 0154 00dd 0418 lr $AC1.L, @0x0418 0156 1504 lsl $ACC1, #4 0157 0604 cmpis $AC0.M, #0x04 0158 0290 01b0 jge 0x01b0 015a 1fdd mrr $AC0.M, $AC1.L 015b 0082 0c00 lri $AR2, #0x0c00 015d 1050 loopi #0x50 015e 4b2a addax's $ACC1, $AX1 : @$AR2, $AC1.L 015f 1fbe mrr $AC1.L, $AC0.M 0160 00fe 0360 sr @0x0360, $AC0.M 0162 8900 clr $ACC1 0163 1fbe mrr $AC1.L, $AC0.M 0164 009a fff8 lri $AX0.H, #0xfff8 0166 009b 00fc lri $AX1.H, #0x00fc 0168 00d8 0361 lr $AX0.L, @0x0361 016a 0082 0c00 lri $AR2, #0x0c00 016c 0083 0c00 lri $AR3, #0x0c00 016e 195e lrri $AC0.M, @$AR2 016f 3480 lsrnrx $ACC0, $AX0.H 0170 1128 0175 bloopi #0x28, 0x0175 0172 367a andr'l $AC0.M, $AX1.H : $AC1.M, @$AR2 0173 35b3 lsrnrx's $ACC1, $AX0.H : @$AR3, $AC0.M 0174 3772 andr'l $AC1.M, $AX1.H : $AC0.M, @$AR2 0175 34bb lsrnrx's $ACC0, $AX0.H : @$AR3, $AC1.M 0176 8a00 m2 0177 0082 0c00 lri $AR2, #0x0c00 0179 00dd 0418 lr $AC1.L, @0x0418 017b 1504 lsl $ACC1, #4 017c 1fe0 mrr $AC1.M, $AR0 017d 8100 clr $ACC0 017e 00de 0362 lr $AC0.M, @0x0362 0180 1474 lsr $ACC0, #-12 0181 1f7e mrr $AX1.H, $AC0.M 0182 1f3c mrr $AX1.L, $AC0.L 0183 8f00 set40 0184 1943 lrri $AR3, @$AR2 0185 4bc3 addax'ld $ACC1, $AX1 : $AX0.L, $AX1.L, @$AR3 0186 90c3 mul'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 0187 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 0188 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 0189 f200 madd $AX0.L, $AX0.H 018a fe00 movpz $ACC0 018b 1c1f mrr $AR0, $AC1.M 018c 1943 lrri $AR3, @$AR2 018d 4bc3 addax'ld $ACC1, $AX1 : $AX0.L, $AX1.L, @$AR3 018e 90c3 mul'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 018f 114e 0197 bloopi #0x4e, 0x0197 0191 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 0192 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 0193 f231 madd's $AX0.L, $AX0.H : @$AR1, $AC0.M 0194 1c1f mrr $AR0, $AC1.M 0195 1943 lrri $AR3, @$AR2 0196 4bc3 addax'ld $ACC1, $AX1 : $AX0.L, $AX1.L, @$AR3 0197 92c3 mulmvz'ld $AX0.L, $AX0.H, $ACC0 : $AX0.L, $AX1.L, @$AR3 0198 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 0199 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 019a f231 madd's $AX0.L, $AX0.H : @$AR1, $AC0.M 019b fe00 movpz $ACC0 019c 1b3e srri @$AR1, $AC0.M 019d 8b00 m0 019e 8e00 set16 019f 00fe 041b sr @0x041b, $AC0.M 01a1 1c1f mrr $AR0, $AC1.M 01a2 150c lsl $ACC1, #12 01a3 0340 0fff andi $AC1.M, #0x0fff 01a5 00ff 0418 sr @0x0418, $AC1.M 01a7 0083 0424 lri $AR3, #0x0424 01a9 191e lrri $AC0.M, @$AR0 01aa 191f lrri $AC1.M, @$AR0 01ab 80a0 nx'ls : $AX0.H, $AC0.M 01ac 64a1 movr'ls $ACC0, $AX0.H : $AX0.H, $AC1.M 01ad 6533 movr's $ACC1, $AX0.H : @$AR3, $AC0.M 01ae 1b7f srri @$AR3, $AC1.M 01af 02df ret } { 01b0 1fe0 mrr $AC1.M, $AR0 01b1 1c1f mrr $AR0, $AC1.M 01b2 1128 01b9 bloopi #0x28, 0x01b9 01b4 4b70 addax'l $ACC1, $AX1 : $AC0.M, @$AR0 01b5 1b3e srri @$AR1, $AC0.M 01b6 1c1f mrr $AR0, $AC1.M 01b7 4b70 addax'l $ACC1, $AX1 : $AC0.M, @$AR0 01b8 1b3e srri @$AR1, $AC0.M 01b9 1c1f mrr $AR0, $AC1.M 01ba 029f 019f jmp 0x019f } { 01bc 8a00 m2 01bd 0088 0007 lri $WR0, #0x0007 01bf 1150 01cc bloopi #0x50, 0x01cc { 01c1 1c61 mrr $AR3, $AR1 01c2 84c3 clrp'ld : $AX0.L, $AX1.L, @$AR3 01c3 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 01c4 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 01c5 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 01c6 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 01c7 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 01c8 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 01c9 f2c3 madd'ld $AX0.L, $AX0.H : $AX0.L, $AX1.L, @$AR3 01ca f200 madd $AX0.L, $AX0.H 01cb fe00 movpz $ACC0 01cc 1b3e srri @$AR1, $AC0.M } 01cd 0088 ffff lri $WR0, #0xffff 01cf 8b00 m0 01d0 02df ret } { 01d1 0088 0003 lri $WR0, #0x0003 01d3 0085 0000 lri $IX1, #0x0000 01d5 0087 0000 lri $IX3, #0x0000 01d7 1fc2 mrr $AC0.M, $AR2 01d8 195b lrri $AX1.H, @$AR2 01d9 1959 lrri $AX1.L, @$AR2 01da 195f lrri $AC1.M, @$AR2 01db 195a lrri $AX0.H, @$AR2 01dc 1c5e mrr $AR2, $AC0.M 01dd 1fda mrr $AC0.M, $AX0.H 01de 1c61 mrr $AR3, $AR1 01df 8a00 m2 01e0 8f00 set40 01e1 191a lrri $AX0.H, @$AR0 01e2 b850 mulx'l $AX0.H, $AX1.H : $AX0.H, @$AR0 01e3 e250 maddx'l $AX0.H, $AX1.L : $AX0.H, @$AR0 01e4 ea50 maddc'l $AC1.M, $AX1.L : $AX0.H, @$AR0 01e5 e8e8 maddc'ldm $AC0.M, $AX1.L : $AX0.H, $AX1.L, @$AR0 01e6 b650 mulxmv'l $AX0.H, $AX1.L, $ACC0 : $AX0.H, @$AR0 01e7 1127 01f2 bloopi #0x27, 0x01f2 { 01e9 e3a8 maddx'lsm $AX0.H, $AX1.H : $AX0.H, $AC0.M 01ea 197e lrri $AC0.M, @$AR3 01eb e850 maddc'l $AC0.M, $AX1.L : $AX0.H, @$AR0 01ec eaf8 maddc'ldm $AC1.M, $AX1.L : $AX0.H, $AX1.H, @$AR0 01ed bf50 mulxmv'l $AX0.H, $AX1.H, $ACC1 : $AX0.H, @$AR0 01ee e2a9 maddx'lsm $AX0.H, $AX1.L : $AX0.H, $AC1.M 01ef 197f lrri $AC1.M, @$AR3 01f0 ea50 maddc'l $AC1.M, $AX1.L : $AX0.H, @$AR0 01f1 e8e8 maddc'ldm $AC0.M, $AX1.L : $AX0.H, $AX1.L, @$AR0 01f2 b650 mulxmv'l $AX0.H, $AX1.L, $ACC0 : $AX0.H, @$AR0 } 01f3 e3a8 maddx'lsm $AX0.H, $AX1.H : $AX0.H, $AC0.M 01f4 197e lrri $AC0.M, @$AR3 01f5 e850 maddc'l $AC0.M, $AX1.L : $AX0.H, @$AR0 01f6 eaf8 maddc'ldm $AC1.M, $AX1.L : $AX0.H, $AX1.H, @$AR0 01f7 bf00 mulxmv $AX0.H, $AX1.H, $ACC1 01f8 1bff srrn @$AR3, $AC1.M 01f9 197f lrri $AC1.M, @$AR3 01fa 8e00 set16 01fb 8b00 m0 01fc 0088 ffff lri $WR0, #0xffff 01fe 1b5b srri @$AR2, $AX1.H 01ff 1b59 srri @$AR2, $AX1.L 0200 1b5f srri @$AR2, $AC1.M 0201 1b5e srri @$AR2, $AC0.M 0202 02df ret } { 0203 0080 0346 lri $AR0, #0x0346 0205 02bf 0051 call 0x0051 0207 02bf 0051 call 0x0051 0209 0081 0346 lri $AR1, #0x0346 020b 009f 0580 lri $AC1.M, #0x0580 020d 0080 0080 lri $AR0, #0x0080 020f 02bf 007c call 0x007c 0211 0081 0348 lri $AR1, #0x0348 0213 009f 0c00 lri $AC1.M, #0x0c00 0215 0080 0080 lri $AR0, #0x0080 0217 02bf 007c call 0x007c 0219 0080 0c00 lri $AR0, #0x0c00 021b 0081 0580 lri $AR1, #0x0580 021d 02bf 01d1 call 0x01d1 021f 0081 0346 lri $AR1, #0x0346 0221 009f 0580 lri $AC1.M, #0x0580 0223 0080 0080 lri $AR0, #0x0080 0225 02bf 0089 call 0x0089 0227 0081 0348 lri $AR1, #0x0348 0229 009f 0c00 lri $AC1.M, #0x0c00 022b 0080 0080 lri $AR0, #0x0080 022d 02bf 0089 call 0x0089 022f 029f 0049 jmp 0x0049 } void 0231_FormatAudioSynths(format AC0.M) { 0231 8100 clr $ACC0 0232 1f5e mrr $AX0.H, $AC0.M 0233 00d8 0402 lr $AX0.L, @0x0402 0235 00dc 0418 lr $AC0.L, @0x0418 0237 0080 0520 lri $AR0, #0x0520 0239 00df 0440 lr $AC1.M, @0x0440 023b 1501 lsl $ACC1, #1 023c 0340 007e andi $AC1.M, #0x007e 023e 0300 0246 addi $AC1.M, #0x0246 0240 1c5f mrr $AR2, $AC1.M 0241 175f callr $AR2 // call 0x0246 0242 00fc 0418 sr @0x0418, $AC0.L 0244 029f 04e7 jmp 0x04e7 // dummy 0246 029f 0257 jmp 0x0257 // 0x0 - Synth0 0248 029f 028f jmp 0x028f // 0x1 - Synth1 024a 029f 0277 jmp 0x0277 // 0x2 - Synth2 024c 029f 0267 jmp 0x0267 // 0x3 - Synth3 024e 029f 0292 jmp 0x0292 // 0x4 - Synth4 0250 029f 0256 jmp 0x0256 // 0x5 - dummy 0252 029f 02b1 jmp 0x02b1 // 0x6 - Synth6 0254 029f 02ae jmp 0x02ae // 0x7 - Synth7 0256 02df ret } void 0257_Synth0() { 0257 1401 lsl $ACC0, #1 0258 009b c000 lri $AX1.H, #0xc000 025a 0099 4000 lri $AX1.L, #0x4000 025c 1150 0264 bloopi #0x50, 0x0264 { 025e 02c0 0001 andcf $AC0.M, #0x0001 0260 027c iflnz 0261 1b1b srri @$AR0, $AX1.H 0262 027d iflz 0263 1b19 srri @$AR0, $AX1.L 0264 4800 addax $ACC0, $AX0 } 0265 147f lsr $ACC0, #-1 0266 02df ret } void 0267_Synth3() { 0267 1401 lsl $ACC0, #1 0268 009b c000 lri $AX1.H, #0xc000 026a 0099 4000 lri $AX1.L, #0x4000 026c 1150 0274 bloopi #0x50, 0x0274 { 026e 02c0 0003 andcf $AC0.M, #0x0003 0270 027c iflnz 0271 1b1b srri @$AR0, $AX1.H 0272 027d iflz 0273 1b19 srri @$AR0, $AX1.L 0274 4800 addax $ACC0, $AX0 } 0275 147f lsr $ACC0, #-1 0276 02df ret } void 0277_Synth2() { 0277 1401 lsl $ACC0, #1 0278 0081 0ca0 lri $AR1, #0x0ca0 027a 009b c000 lri $AX1.H, #0xc000 027c 0099 4000 lri $AX1.L, #0x4000 027e 8900 clr $ACC1 027f 0082 0000 lri $AR2, #0x0000 0281 1150 028c bloopi #0x50, 0x028c { 0283 02c0 0001 andcf $AC0.M, #0x0001 0285 027c iflnz 0286 1b1b srri @$AR0, $AX1.H 0287 027d iflz 0288 1b19 srri @$AR0, $AX1.L 0289 183d lrr $AC1.L, @$AR1 028a 4900 addax $ACC1, $AX0 028b 1fe2 mrr $AC1.M, $AR2 028c 4c39 add's $ACC0, $ACC1 : @$AR1, $AC1.M } 028d 147f lsr $ACC0, #-1 028e 02df ret } void 028f_Synth1() { 028f 1050 loopi #0x50 0290 4820 addax's $ACC0, $AX0 : @$AR0, $AC0.L 0291 02df ret } void 0292_Synth4() { 0292 0082 0140 lri $AR2, #0x0140 0294 008a 003f lri $WR2, #0x003f 0296 0086 0000 lri $IX2, #0x0000 0298 1406 lsl $ACC0, #6 0299 8900 clr $ACC1 029a 1fb8 mrr $AC1.L, $AX0.L 029b 1506 lsl $ACC1, #6 029c 009b 003f lri $AX1.H, #0x003f 029e 009a 0000 lri $AX0.H, #0x0000 02a0 3600 andr $AC0.M, $AX1.H 02a1 1cde mrr $IX2, $AC0.M 02a2 001a addarn $AR2, $IX2 02a3 3400 andr $AC0.M, $AX0.H 02a4 1150 02aa bloopi #0x50, 0x02aa { 02a6 4c00 add $ACC0, $ACC1 02a7 364a andr'l $AC0.M, $AX1.H : $AX1.L, @$AR2 02a8 1cde mrr $IX2, $AC0.M 02a9 340e andr'nr $AC0.M, $AX0.H : $AR2 02aa 1b19 srri @$AR0, $AX1.L } 02ab 1fc2 mrr $AC0.M, $AR2 02ac 147a lsr $ACC0, #-6 02ad 02df ret } void 02b1_Synth7() { 02ae 1050 loopi #0x50 02af 1b18 srri @$AR0, $AX0.L 02b0 02df ret } void 02b1_Synth6() { 02b1 0083 0000 lri $AR3, #0x0000 02b3 140f lsl $ACC0, #15 02b4 4853 addax'l $ACC0, $AX0 : $AX0.H, @$AR3 02b5 1114 02ba bloopi #0x14, 0x02ba { 02b7 48a2 addax'sl $ACC0, $AX0 : $AC0.M, $AX0.H 02b8 48a2 addax'sl $ACC0, $AX0 : $AC0.M, $AX0.H 02b9 48a2 addax'sl $ACC0, $AX0 : $AC0.M, $AX0.H 02ba 48a2 addax'sl $ACC0, $AX0 : $AC0.M, $AX0.H } 02bb 146f lsr $ACC0, #-17 02bc 02df ret } { 02bd 0080 0380 lri $AR0, #0x0380 02bf 02bf 0051 call 0x0051 02c1 02bf 0051 call 0x0051 02c3 02bf 0051 call 0x0051 02c5 02bf 0051 call 0x0051 02c7 0081 0382 lri $AR1, #0x0382 02c9 009f 0000 lri $AC1.M, #0x0000 02cb 0080 0200 lri $AR0, #0x0200 02cd 02bf 007c call 0x007c 02cf 0081 0384 lri $AR1, #0x0384 02d1 009f 0300 lri $AC1.M, #0x0300 02d3 0080 0020 lri $AR0, #0x0020 02d5 02bf 007c call 0x007c 02d7 02bf 0351 call 0x0351 02d9 00de 0345 lr $AC0.M, @0x0345 02db 00fe 0342 sr @0x0342, $AC0.M 02dd 029f 0049 jmp 0x0049 } { 02df 00de 0344 lr $AC0.M, @0x0344 02e1 1404 lsl $ACC0, #4 02e2 0200 03a8 addi $AC0.M, #0x03a8 02e4 1c1e mrr $AR0, $AC0.M 02e5 02bf 0051 call 0x0051 02e7 02bf 0051 call 0x0051 02e9 02bf 0051 call 0x0051 02eb 00de 0345 lr $AC0.M, @0x0345 02ed 1b1e srri @$AR0, $AC0.M 02ee 00de 0344 lr $AC0.M, @0x0344 02f0 0200 03a4 addi $AC0.M, #0x03a4 02f2 1c1e mrr $AR0, $AC0.M 02f3 8100 clr $ACC0 02f4 1b1e srri @$AR0, $AC0.M 02f5 02df ret } { 02f6 00de 0344 lr $AC0.M, @0x0344 02f8 1404 lsl $ACC0, #4 02f9 0200 03b0 addi $AC0.M, #0x03b0 02fb 1c1e mrr $AR0, $AC0.M 02fc 02bf 0051 call 0x0051 02fe 02bf 0051 call 0x0051 0300 02bf 0051 call 0x0051 0302 02bf 0051 call 0x0051 0304 02df ret } { 0305 0081 034c lri $AR1, #0x034c 0307 009f 0400 lri $AC1.M, #0x0400 0309 0080 0080 lri $AR0, #0x0080 030b 02bf 007c call 0x007c 030d 02df ret } { 030e 0081 034c lri $AR1, #0x034c 0310 009f 0a00 lri $AC1.M, #0x0a00 0312 0080 0004 lri $AR0, #0x0004 0314 02bf 00a5 call 00a5_WaitForDMAend() 0316 02bf 007c call 0x007c 0318 0081 034c lri $AR1, #0x034c 031a 009f 0400 lri $AC1.M, #0x0400 031c 0080 0080 lri $AR0, #0x0080 031e 02bf 0095 call 0x0095 0320 02df ret } { 0321 0081 034c lri $AR1, #0x034c 0323 009f 0400 lri $AC1.M, #0x0400 0325 0080 0040 lri $AR0, #0x0040 0327 0081 034c lri $AR1, #0x034c 0329 193e lrri $AC0.M, @$AR1 032a 193c lrri $AC0.L, @$AR1 032b 0098 0000 lri $AX0.L, #0x0000 032d 7000 addaxl $ACC0, $AX0.L 032e 02bf 008b call 0x008b 0330 02df ret } { 0331 191e lrri $AC0.M, @$AR0 0332 191a lrri $AX0.H, @$AR0 0333 005f loop $AC1.M 0334 64a0 movr'ls $ACC0, $AX0.H : $AX0.H, $AC0.M 0335 1b7e srri @$AR3, $AC0.M 0336 1b7a srri @$AR3, $AX0.H 0337 02df ret } { 0338 191e lrri $AC0.M, @$AR0 0339 191a lrri $AX0.H, @$AR0 033a 007f 033f bloop $AC1.M, 0x033f { 033c 32b2 not's $AC0.M : @$AR2, $AC0.M 033d 65a0 movr'ls $ACC1, $AX0.H : $AX0.H, $AC0.M 033e 33ba not's $AC1.M : @$AR2, $AC1.M 033f 64a1 movr'ls $ACC0, $AX0.H : $AX0.H, $AC1.M } 0340 0000 nop 0341 02df ret } { 0342 8a00 m2 0343 157f lsr $ACC1, #-1 0344 1c20 mrr $AR1, $AR0 0345 1c03 mrr $AR0, $AR3 0346 193a lrri $AX0.H, @$AR1 0347 9051 mul'l $AX0.L, $AX0.H : $AX0.H, @$AR1 0348 925b mulmvz'l $AX0.L, $AX0.H, $ACC0 : $AX1.H, @$AR3 0349 007f 034e bloop $AC1.M, 0x034e { 034b 4651 addr'l $ACC0, $AX1.H : $AX0.H, @$AR1 034c 92b2 mulmvz'sl $AX0.L, $AX0.H, $ACC0 : $AC0.M, $AX1.H 034d 4651 addr'l $ACC0, $AX1.H : $AX0.H, @$AR1 034e 92b2 mulmvz'sl $AX0.L, $AX0.H, $ACC0 : $AC0.M, $AX1.H } 034f 8b00 m0 0350 02df ret } { 0351 0083 ffa0 lri $AR3, #0xffa0 0353 0080 0300 lri $AR0, #0x0300 0355 009f 000e lri $AC1.M, #0x000e 0357 1108 035c bloopi #0x08, 0x035c { 0359 191e lrri $AC0.M, @$AR0 035a 1b7e srri @$AR3, $AC0.M 035b 191e lrri $AC0.M, @$AR0 035c 1b7e srri @$AR3, $AC0.M } 035d 02df ret } { 035e 0080 0f40 lri $AR0, #0x0f40 0360 0082 0d00 lri $AR2, #0x0d00 0362 0083 0d60 lri $AR3, #0x0d60 0364 009f 0028 lri $AC1.M, #0x0028 0366 02bf 0338 call 0x0338 0368 8900 clr $ACC1 0369 009e 0050 lri $AC0.M, #0x0050 036b 0080 0ca0 lri $AR0, #0x0ca0 036d 005e loop $AC0.M 036e 1b1f srri @$AR0, $AC1.M 036f 0080 0f40 lri $AR0, #0x0f40 0371 005e loop $AC0.M 0372 1b1f srri @$AR0, $AC1.M 0373 0080 0fa0 lri $AR0, #0x0fa0 0375 005e loop $AC0.M 0376 1b1f srri @$AR0, $AC1.M 0377 02df ret } { 0378 0080 0dc0 lri $AR0, #0x0dc0 037a 009e 0180 lri $AC0.M, #0x0180 037c 8900 clr $ACC1 037d 005e loop $AC0.M 037e 1b1f srri @$AR0, $AC1.M 037f 02df ret } { 0380 00c0 03a0 lr $AR0, @0x03a0 0382 191a lrri $AX0.H, @$AR0 0383 00df 03a1 lr $AC1.M, @0x03a1 0385 009b 00a0 lri $AX1.H, #0x00a0 0387 0081 0393 lri $AR1, #0x0393 0389 18bc lrrd $AC0.L, @$AR1 038a b871 mulx'l $AX0.H, $AX1.H : $AC0.M, @$AR1 038b bc00 mulxac $AX0.H, $AX1.H, $ACC0 038c 0080 0050 lri $AR0, #0x0050 038e 0508 addis $AC1.M, #0x08 038f 02bf 007e call 0x007e 0391 00de 0390 lr $AC0.M, @0x0390 0393 02a0 0001 andf $AC0.M, #0x0001 0395 029d 039f jlz 0x039f 0397 0080 0398 lri $AR0, #0x0398 0399 009e 0008 lri $AC0.M, #0x0008 039b 00c1 03a1 lr $AR1, @0x03a1 039d 02bf 01bc call 0x01bc 039f 009f 0050 lri $AC1.M, #0x0050 03a1 00c0 03a1 lr $AR0, @0x03a1 03a3 8100 clr $ACC0 03a4 00de 0394 lr $AC0.M, @0x0394 03a6 b100 tst $ACC0 03a7 0295 03ae jz 0x03ae 03a9 1c7e mrr $AR3, $AC0.M 03aa 00d8 0395 lr $AX0.L, @0x0395 03ac 02bf 0342 call 0x0342 03ae 009f 0050 lri $AC1.M, #0x0050 03b0 00c0 03a1 lr $AR0, @0x03a1 03b2 8100 clr $ACC0 03b3 00de 0396 lr $AC0.M, @0x0396 03b5 b100 tst $ACC0 03b6 0295 03bd jz 0x03bd 03b8 1c7e mrr $AR3, $AC0.M 03b9 00d8 0397 lr $AX0.L, @0x0397 03bb 02bf 0342 call 0x0342 03bd 00de 0390 lr $AC0.M, @0x0390 03bf 02a0 0002 andf $AC0.M, #0x0002 03c1 02dd retlz 03c2 0080 0398 lri $AR0, #0x0398 03c4 009e 0008 lri $AC0.M, #0x0008 03c6 00c1 03a1 lr $AR1, @0x03a1 03c8 02bf 01bc call 0x01bc 03ca 02df ret } { 03cb 009f 0dc0 lri $AC1.M, #0x0dc0 03cd 00ff 03a1 sr @0x03a1, $AC1.M 03cf 009f 03a8 lri $AC1.M, #0x03a8 03d1 00ff 03a2 sr @0x03a2, $AC1.M 03d3 009f 03a4 lri $AC1.M, #0x03a4 03d5 00ff 03a0 sr @0x03a0, $AC1.M 03d7 1104 0400 bloopi #0x04, 0x0400 { 03d9 00c0 03a2 lr $AR0, @0x03a2 03db 0083 0390 lri $AR3, #0x0390 03dd 009f 000e lri $AC1.M, #0x000e 03df 02bf 0331 call 0x0331 03e1 00da 0390 lr $AX0.H, @0x0390 03e3 8600 tstaxh $AX0.H 03e4 0295 03f1 jz 0x03f1 03e6 00df 03a1 lr $AC1.M, @0x03a1 03e8 1c7f mrr $AR3, $AC1.M 03e9 0550 addis $AC1.M, #0x50 03ea 1c1f mrr $AR0, $AC1.M 03eb 009f 0006 lri $AC1.M, #0x0006 03ed 02bf 0331 call 0x0331 03ef 02bf 0380 call 0x0380 03f1 00de 03a2 lr $AC0.M, @0x03a2 03f3 0410 addis $AC0.M, #0x10 03f4 00fe 03a2 sr @0x03a2, $AC0.M 03f6 00de 03a1 lr $AC0.M, @0x03a1 03f8 0460 addis $AC0.M, #0x60 03f9 00fe 03a1 sr @0x03a1, $AC0.M 03fb 00de 03a0 lr $AC0.M, @0x03a0 03fd 7400 incm $AC0.M 03fe 00fe 03a0 sr @0x03a0, $AC0.M 0400 0000 nop } 0401 02df ret } { 0402 00c0 03a0 lr $AR0, @0x03a0 0404 181a lrr $AX0.H, @$AR0 0405 8100 clr $ACC0 0406 181e lrr $AC0.M, @$AR0 0407 00db 0391 lr $AX1.H, @0x0391 0409 7400 incm $AC0.M 040a d100 cmpar $ACC1, $AX0.H 040b 0270 ifge 040c 8100 clr $ACC0 040d 1b1e srri @$AR0, $AC0.M 040e 00df 03a1 lr $AC1.M, @0x03a1 0410 009b 00a0 lri $AX1.H, #0x00a0 0412 0081 0393 lri $AR1, #0x0393 0414 18bc lrrd $AC0.L, @$AR1 0415 b871 mulx'l $AX0.H, $AX1.H : $AC0.M, @$AR1 0416 bc00 mulxac $AX0.H, $AX1.H, $ACC0 0417 0080 0050 lri $AR0, #0x0050 0419 02bf 008b call 0x008b 041b 02df ret } { 041c 009f 0dc0 lri $AC1.M, #0x0dc0 041e 00ff 03a1 sr @0x03a1, $AC1.M 0420 009f 03a8 lri $AC1.M, #0x03a8 0422 00ff 03a2 sr @0x03a2, $AC1.M 0424 009f 03a4 lri $AC1.M, #0x03a4 0426 00ff 03a0 sr @0x03a0, $AC1.M 0428 1104 0448 bloopi #0x04, 0x0448 { 042a 00c0 03a2 lr $AR0, @0x03a2 042c 0083 0390 lri $AR3, #0x0390 042e 009f 000e lri $AC1.M, #0x000e 0430 02bf 0331 call 0x0331 0432 00da 0390 lr $AX0.H, @0x0390 0434 8600 tstaxh $AX0.H 0435 0295 0439 jz 0x0439 0437 02bf 0402 call 0x0402 0439 00de 03a2 lr $AC0.M, @0x03a2 043b 0410 addis $AC0.M, #0x10 043c 00fe 03a2 sr @0x03a2, $AC0.M 043e 00de 03a1 lr $AC0.M, @0x03a1 0440 0460 addis $AC0.M, #0x60 0441 00fe 03a1 sr @0x03a1, $AC0.M 0443 00de 03a0 lr $AC0.M, @0x03a0 0445 7400 incm $AC0.M 0446 00fe 03a0 sr @0x03a0, $AC0.M 0448 0000 nop } 0449 02df ret } { 044a 0081 0386 lri $AR1, #0x0386 044c 009f 03a8 lri $AC1.M, #0x03a8 044e 0080 0040 lri $AR0, #0x0040 0450 02bf 007c call 0x007c 0452 02df ret } { 0453 191e lrri $AC0.M, @$AR0 0454 189c lrrd $AC0.L, @$AR0 0455 4800 addax $ACC0, $AX0 0456 1b1e srri @$AR0, $AC0.M 0457 1b1c srri @$AR0, $AC0.L 0458 02df ret 0459 8100 clr $ACC0 045a 26fe lrs $AC0.M, @CMBH 045b 02c0 8000 andcf $AC0.M, #0x8000 045d 029c 045a jlnz 0x045a 045f 26ff lrs $AC0.M, @CMBL 0460 02df ret } { 0461 0080 0388 lri $AR0, #0x0388 0463 0081 0051 lri $AR1, #0x0051 0465 173f callr $AR1 // call 0x0051 0466 00de 0344 lr $AC0.M, @0x0344 0468 00fe 0341 sr @0x0341, $AC0.M 046a 00de 0345 lr $AC0.M, @0x0345 046c 00fe 038e sr @0x038e, $AC0.M 046e 173f callr $AR1 // call 0x0051 046f 02df ret } { 0470 02bf 0461 call 0x0461 0472 009e 8000 lri $AC0.M, #0x8000 0474 00dc 0341 lr $AC0.L, @0x0341 0476 02bf 005a call 005a_SendMail(AC0.M,AC0.L) // 0x8000???? 0478 8100 clr $ACC0 0479 00fe 0355 sr @0x0355, $AC0.M 047b 02bf 044a call 0x044a 047d 00de 0341 lr $AC0.M, @0x0341 047f 007e 056c bloop $AC0.M, 0x056c { 0481 02bf 035e call 0x035e 0483 02bf 03cb call 0x03cb 0485 02bf 0459 call 0x0459 0487 8100 clr $ACC0 0488 00fe 0354 sr @0x0354, $AC0.M 048a 00de 0342 lr $AC0.M, @0x0342 048c 007e 0538 bloop $AC0.M, 0x0538 { 048e 00d8 0354 lr $AX0.L, @0x0354 0490 009a 0100 lri $AX0.H, #0x0100 0492 8100 clr $ACC0 0493 00de 0380 lr $AC0.M, @0x0380 0495 00dc 0381 lr $AC0.L, @0x0381 0497 9000 mul $AX0.L, $AX0.H 0498 9400 mulac $AX0.L, $AX0.H, $ACC0 0499 00fe 034c sr @0x034c, $AC0.M 049b 00fc 034d sr @0x034d, $AC0.L 049d 02bf 0305 call 0x0305 049f 00da 0400 lr $AX0.H, @0x0400 04a1 8600 tstaxh $AX0.H 04a2 0295 0533 jz 0x0533 04a4 00da 0401 lr $AX0.H, @0x0401 04a6 8600 tstaxh $AX0.H 04a7 0294 0533 jnz 0x0533 04a9 00da 0406 lr $AX0.H, @0x0406 04ab 8600 tstaxh $AX0.H 04ac 0294 0930 jnz 0x0930 04ae 8100 clr $ACC0 04af 00de 0440 lr $AC0.M, @0x0440 04b1 0607 cmpis $AC0.M, #0x07 // format 0x7 or less (Synths) 04b2 0293 0231 jle 0x0231 04b4 0620 cmpis $AC0.M, #0x20 // format 0x20 04b5 0295 079e jz 0x079e 04b7 0621 cmpis $AC0.M, #0x21 // format 0x21 04b8 0295 07a7 jz 0x07a7 04ba 00d8 0402 lr $AX0.L, @0x0402 04bc 8100 clr $ACC0 04bd 8900 clr $ACC1 04be 00dc 0418 lr $AC0.L, @0x0418 04c0 8d00 set15 04c1 0099 0050 lri $AX1.L, #0x0050 04c3 a000 mulx $AX0.L, $AX1.L 04c4 a400 mulxac $AX0.L, $AX1.L, $ACC0 04c5 1404 lsl $ACC0, #4 04c6 8c00 clr15 04c7 1ffe mrr $AC1.M, $AC0.M 04c8 0083 0580 lri $AR3, #0x0580 04ca 00da 0441 lr $AX0.H, @0x0441 04cc 8600 tstaxh $AX0.H 04cd 0295 04dd jz 0x04dd 04cf 00da 0449 lr $AX0.H, @0x0449 04d1 8100 clr $ACC0 04d2 00de 044b lr $AC0.M, @0x044b 04d4 3800 orr $AC0.M, $AX0.H 04d5 0240 000f andi $AC0.M, #0x000f 04d7 0295 04dd jz 0x04dd 04d9 02bf 06a6 call 0x06a6 04db 029f 04df jmp 0x04df 04dd 02bf 0837 call 0x0837 //RAW21-jmp 04df 0080 0580 lri $AR0, #0x0580 04e1 0081 0520 lri $AR1, #0x0520 04e3 0099 0000 lri $AX1.L, #0x0000 04e5 02bf 013b call 0x013b //RAW20-jmp 04e7 0080 0450 lri $AR0, #0x0450 04e9 0081 0520 lri $AR1, #0x0520 04eb 0082 0428 lri $AR2, #0x0428 04ed 0083 0453 lri $AR3, #0x0453 04ef 18fa lrrd $AX0.H, @$AR3 04f0 8600 tstaxh $AX0.H 04f1 0294 0501 jnz 0x0501 04f3 18fa lrrd $AX0.H, @$AR3 04f4 8600 tstaxh $AX0.H 04f5 0294 0501 jnz 0x0501 04f7 18fa lrrd $AX0.H, @$AR3 04f8 8600 tstaxh $AX0.H 04f9 0294 0501 jnz 0x0501 04fb 8100 clr $ACC0 04fc 18fe lrrd $AC0.M, @$AR3 04fd 0280 7fff cmpi $AC0.M, #0x7fff 04ff 0295 0505 jz 0x0505 0501 02bf 01d1 call 0x01d1 0503 029f 0505 jmp 0x0505 0505 8100 clr $ACC0 0506 1c9e mrr $IX0, $AC0.M 0507 1cde mrr $IX2, $AC0.M 0508 7400 incm $AC0.M 0509 1cfe mrr $IX3, $AC0.M 050a 8f00 set40 050b 0086 0002 lri $IX2, #0x0002 050d 0082 0408 lri $AR2, #0x0408 050f 1104 052f bloopi #0x04, 0x052f { 0511 8100 clr $ACC0 0512 195e lrri $AC0.M, @$AR2 0513 1200 sbclr #0x00 0514 b100 tst $ACC0 0515 0275 ifz 0516 1300 sbset #0x00 0517 1c7e mrr $AR3, $AC0.M 0518 195e lrri $AC0.M, @$AR2 0519 14fa asr $ACC0, #-6 051a 1f5e mrr $AX0.H, $AC0.M 051b 1f1c mrr $AX0.L, $AC0.L 051c 185f lrr $AC1.M, @$AR2 051d 0080 0520 lri $AR0, #0x0520 051f 029d 0523 jlz 0x0523 0521 02bf 011e call 0x011e 0523 1b5f srri @$AR2, $AC1.M 0524 8100 clr $ACC0 0525 185e lrr $AC0.M, @$AR2 0526 000e xar $AR2 //; *** UNKNOWN OPCODE *** // 0xc/0xd/0xe/0xf is one opcode where last 2 bits define target $AR? reg // (new value is based on orig $AR? and %WR? reg value = unknown) 0527 b100 tst $ACC0 0528 0274 ifnz 0529 7800 decm $AC0.M 052a b100 tst $ACC0 052b 8900 clr $ACC1 052c 0275 ifz 052d 1a5f srr @$AR2, $AC1.M 052e 001a addarn $AR2, $IX2 052f 1b5e srri @$AR2, $AC0.M } 0530 8e00 set16 0531 02bf 0321 call 0x0321 0533 00de 0354 lr $AC0.M, @0x0354 0535 7400 incm $AC0.M 0536 00fe 0354 sr @0x0354, $AC0.M 0538 0000 nop } 0539 16fb 0001 si @DIRQ, #0x0001 053b 0083 0d00 lri $AR3, #0x0d00 053d 02bf 012a call 0x012a 053f 0081 0388 lri $AR1, #0x0388 0541 009f 0d00 lri $AC1.M, #0x0d00 0543 0080 0050 lri $AR0, #0x0050 0545 02bf 0089 call 0x0089 0547 0080 0fa0 lri $AR0, #0x0fa0 0549 0083 0d60 lri $AR3, #0x0d60 054b 009f 0050 lri $AC1.M, #0x0050 054d 0098 8000 lri $AX0.L, #0x8000 054f 02bf 0342 call 0x0342 0551 0083 0d60 lri $AR3, #0x0d60 0553 02bf 012a call 0x012a 0555 0081 038a lri $AR1, #0x038a 0557 009f 0d60 lri $AC1.M, #0x0d60 0559 0080 0050 lri $AR0, #0x0050 055b 02bf 0089 call 0x0089 055d 009a 0000 lri $AX0.H, #0x0000 055f 0098 00a0 lri $AX0.L, #0x00a0 0561 0080 0388 lri $AR0, #0x0388 0563 02bf 0453 call 0x0453 0565 0080 038a lri $AR0, #0x038a 0567 02bf 0453 call 0x0453 0569 02bf 041c call 0x041c 056b 0000 nop 056c 0000 nop } 056d 029f 0031 jmp 0x0031 } { 056f 0080 0346 lri $AR0, #0x0346 0571 02bf 0051 call 0x0051 0573 02bf 0051 call 0x0051 0575 0081 0346 lri $AR1, #0x0346 0577 193e lrri $AC0.M, @$AR1 0578 193c lrri $AC0.L, @$AR1 0579 009f 0400 lri $AC1.M, #0x0400 057b 00c0 0345 lr $AR0, @0x0345 057d 02bf 007e call 0x007e 057f 0081 0348 lri $AR1, #0x0348 0581 193e lrri $AC0.M, @$AR1 0582 193c lrri $AC0.L, @$AR1 0583 009f 0800 lri $AC1.M, #0x0800 0585 00c0 0345 lr $AR0, @0x0345 0587 02bf 007e call 0x007e 0589 0081 0346 lri $AR1, #0x0346 058b 193e lrri $AC0.M, @$AR1 058c 193c lrri $AC0.L, @$AR1 058d 009f 0800 lri $AC1.M, #0x0800 058f 00c0 0345 lr $AR0, @0x0345 0591 02bf 008b call 0x008b 0593 0081 0348 lri $AR1, #0x0348 0595 193e lrri $AC0.M, @$AR1 0596 193c lrri $AC0.L, @$AR1 0597 009f 0400 lri $AC1.M, #0x0400 0599 00c0 0345 lr $AR0, @0x0345 059b 02bf 008b call 0x008b 059d 029f 0049 jmp 0x0049 } { 059f 0080 0346 lri $AR0, #0x0346 05a1 02bf 0051 call 0x0051 05a3 02bf 0051 call 0x0051 05a5 0081 0346 lri $AR1, #0x0346 05a7 193e lrri $AC0.M, @$AR1 05a8 193c lrri $AC0.L, @$AR1 05a9 009f 0400 lri $AC1.M, #0x0400 05ab 00c0 0345 lr $AR0, @0x0345 05ad 02bf 007e call 0x007e 05af 0081 0348 lri $AR1, #0x0348 05b1 193e lrri $AC0.M, @$AR1 05b2 193c lrri $AC0.L, @$AR1 05b3 009f 0400 lri $AC1.M, #0x0400 05b5 00c0 0345 lr $AR0, @0x0345 05b7 02bf 008b call 0x008b 05b9 029f 0049 jmp 0x0049 } { 05bb 0080 0346 lri $AR0, #0x0346 05bd 02bf 0051 call 0x0051 05bf 02bf 0051 call 0x0051 05c1 0081 0346 lri $AR1, #0x0346 05c3 193e lrri $AC0.M, @$AR1 05c4 193c lrri $AC0.L, @$AR1 05c5 009f 0400 lri $AC1.M, #0x0400 05c7 00c0 0345 lr $AR0, @0x0345 05c9 02bf 00ae call 0x00ae 05cb 0081 0348 lri $AR1, #0x0348 05cd 193e lrri $AC0.M, @$AR1 05ce 193c lrri $AC0.L, @$AR1 05cf 009f 0400 lri $AC1.M, #0x0400 05d1 00c0 0345 lr $AR0, @0x0345 05d3 02bf 008b call 0x008b 05d5 029f 0049 jmp 0x0049 } { 05d7 0080 0346 lri $AR0, #0x0346 05d9 02bf 0051 call 0x0051 05db 02bf 0051 call 0x0051 05dd 0081 0346 lri $AR1, #0x0346 05df 193e lrri $AC0.M, @$AR1 05e0 193c lrri $AC0.L, @$AR1 05e1 009f 0400 lri $AC1.M, #0x0400 05e3 00c0 0344 lr $AR0, @0x0344 05e5 02bf 007e call 0x007e 05e7 0081 0348 lri $AR1, #0x0348 05e9 193e lrri $AC0.M, @$AR1 05ea 193c lrri $AC0.L, @$AR1 05eb 009f 0800 lri $AC1.M, #0x0800 05ed 00c0 0344 lr $AR0, @0x0344 05ef 02bf 007e call 0x007e 05f1 0080 0400 lri $AR0, #0x0400 05f3 0083 0800 lri $AR3, #0x0800 05f5 0084 0000 lri $IX0, #0x0000 05f7 00da 0345 lr $AX0.H, @0x0345 05f9 00df 0344 lr $AC1.M, @0x0344 05fb 8f00 set40 05fc 197b lrri $AX1.H, @$AR3 05fd b800 mulx $AX0.H, $AX1.H 05fe 197b lrri $AX1.H, @$AR3 05ff 007f 0604 bloop $AC1.M, 0x0604 0601 199e lrrn $AC0.M, @$AR0 0602 bc00 mulxac $AX0.H, $AX1.H, $ACC0 0603 80b2 nx'sl : $AC0.M, $AX1.H 0604 0000 nop 0605 8e00 set16 0606 0081 0346 lri $AR1, #0x0346 0608 193e lrri $AC0.M, @$AR1 0609 193c lrri $AC0.L, @$AR1 060a 009f 0400 lri $AC1.M, #0x0400 060c 00c0 0344 lr $AR0, @0x0344 060e 02bf 008b call 0x008b 0610 009e 8200 lri $AC0.M, #0x8200 0612 00dc 0344 lr $AC0.L, @0x0344 0614 02bf 005a call 005a_SendMail(AC0.M,AC0.L) // 0x8200???? 0616 029f 0031 jmp 0x0031 } { 0618 0080 0346 lri $AR0, #0x0346 061a 02bf 0051 call 0x0051 061c 0081 0346 lri $AR1, #0x0346 061e 009f 0400 lri $AC1.M, #0x0400 0620 00c0 0345 lr $AR0, @0x0345 0622 02bf 007c call 0x007c 0624 02bf 8644 call 0x8644 // iROM!!!! 0626 029f 0049 jmp 0x0049 } { 0628 009e 0430 lri $AC0.M, #0x0430 062a 2219 lrs $AX0.H, @0x0019 062b 4400 addr $ACC0, $AX0.H 062c 1c1e mrr $AR0, $AC0.M 062d 1fda mrr $AC0.M, $AX0.H 062e 3280 not $AC0.M 062f 7400 incm $AC0.M 0630 221a lrs $AX0.H, @0x001a 0631 4400 addr $ACC0, $AX0.H 0632 0090 0000 lri $AC0.H, #0x0000 0634 029f 0645 jmp 0x0645 } { 0636 009e 0430 lri $AC0.M, #0x0430 0638 2219 lrs $AX0.H, @0x0019 0639 4400 addr $ACC0, $AX0.H 063a 1c1e mrr $AR0, $AC0.M 063b 1fda mrr $AC0.M, $AX0.H 063c 3280 not $AC0.M 063d 7400 incm $AC0.M 063e 221a lrs $AX0.H, @0x001a 063f 4400 addr $ACC0, $AX0.H 0640 0090 0000 lri $AC0.H, #0x0000 0642 8200 cmp 0643 0270 ifge 0644 1fdf mrr $AC0.M, $AC1.M 0645 1f3e mrr $AX1.L, $AC0.M 0646 02bf 0699 call 0x0699 0648 261c lrs $AC0.M, @0x001c 0649 241d lrs $AC0.L, @0x001d 064a 7200 addaxl $ACC0, $AX1.L 064b 5300 subr $ACC1, $AX1.L 064c 2e1c srs @0x001c, $AC0.M 064d 2c1d srs @0x001d, $AC0.L 064e 02df ret } { 064f 8100 clr $ACC0 0650 221c lrs $AX0.H, @0x001c 0651 201d lrs $AX0.L, @0x001d 0652 4800 addax $ACC0, $AX0 0653 147c lsr $ACC0, #-4 0654 2e1e srs @0x001e, $AC0.M 0655 2c1f srs @0x001f, $AC0.L 0656 2340 lrs $AX1.H, @0x0040 0657 c814 mulc'mv $AC0.M, $AX1.H : $AX1.L, $AC0.L 0658 9e00 mulmv $AX1.L, $AX1.H, $ACC0 0659 f000 lsl16 $ACC0 065a 4e00 addp $ACC0 065b 234c lrs $AX1.H, @0x004c 065c 214d lrs $AX1.L, @0x004d 065d 4a00 addax $ACC0, $AX1 065e 2e20 srs @0x0020, $AC0.M 065f 2c21 srs @0x0021, $AC0.L 0660 1fd8 mrr $AC0.M, $AX0.L 0661 0240 000f andi $AC0.M, #0x000f 0663 2e19 srs @0x0019, $AC0.M 0664 264a lrs $AC0.M, @0x004a 0665 244b lrs $AC0.L, @0x004b 0666 5800 subax $ACC0, $AX0 0667 2e22 srs @0x0022, $AC0.M 0668 2c23 srs @0x0023, $AC0.L 0669 02df ret } { 066a 221e lrs $AX0.H, @0x001e 066b 201f lrs $AX0.L, @0x001f 066c 8100 clr $ACC0 066d 264a lrs $AC0.M, @0x004a 066e 244b lrs $AC0.L, @0x004b 066f 147c lsr $ACC0, #-4 0670 5800 subax $ACC0, $AX0 0671 0295 067a jz 0x067a 0673 02bf 06ec call 0x06ec 0675 0e10 lris $AC0.M, #0x10 0676 2e1a srs @0x001a, $AC0.M 0677 8100 clr $ACC0 0678 2e19 srs @0x0019, $AC0.M 0679 02df ret } { 067a 224a lrs $AX0.H, @0x004a 067b 204b lrs $AX0.L, @0x004b 067c 8100 clr $ACC0 067d 261c lrs $AC0.M, @0x001c 067e 241d lrs $AC0.L, @0x001d 067f 5800 subax $ACC0, $AX0 0680 0290 0687 jge 0x0687 0682 02bf 06ec call 0x06ec 0684 2623 lrs $AC0.M, @0x0023 0685 029f 0676 jmp 0x0676 } { 0687 2648 lrs $AC0.M, @0x0048 0688 2449 lrs $AC0.L, @0x0049 0689 2e1c srs @0x001c, $AC0.M 068a 2c1d srs @0x001d, $AC0.L 068b 0e10 lris $AC0.M, #0x10 068c 2e1a srs @0x001a, $AC0.M 068d 02bf 064f call 0x064f 068f 2642 lrs $AC0.M, @0x0042 0690 2e3f srs @0x003f, $AC0.M 0691 2643 lrs $AC0.M, @0x0043 0692 2e3e srs @0x003e, $AC0.M 0693 8100 clr $ACC0 0694 00fe 0362 sr @0x0362, $AC0.M 0696 02bf 06ec call 0x06ec 0698 02df ret } { 0699 b100 tst $ACC0 069a 02d5 retz 069b 04fe addis $AC0.M, #0xfe 069c 1f1e mrr $AX0.L, $AC0.M 069d 191e lrri $AC0.M, @$AR0 069e 0291 06a4 jl 0x06a4 06a0 191a lrri $AX0.H, @$AR0 06a1 0058 loop $AX0.L 06a2 64a0 movr'ls $ACC0, $AX0.H : $AX0.H, $AC0.M 06a3 6433 movr's $ACC0, $AX0.H : @$AR3, $AC0.M 06a4 1b7e srri @$AR3, $AC0.M 06a5 02df ret } { 06a6 0092 0004 lri $CR, #0x0004 06a8 02bf 064f call 0x064f 06aa 8100 clr $ACC0 06ab 00fe 0362 sr @0x0362, $AC0.M 06ad 8100 clr $ACC0 06ae 2622 lrs $AC0.M, @0x0022 06af 2423 lrs $AC0.L, @0x0023 06b0 b100 tst $ACC0 06b1 0294 06c3 jnz 0x06c3 06b3 02bf 066a call 0x066a 06b5 2219 lrs $AX0.H, @0x0019 06b6 8600 tstaxh $AX0.H 06b7 0294 06c0 jnz 0x06c0 06b9 02bf 0636 call 0x0636 06bb b900 tst $ACC1 06bc 0295 06e9 jz 0x06e9 06be 02bf 064f call 0x064f 06c0 8100 clr $ACC0 06c1 2622 lrs $AC0.M, @0x0022 06c2 2423 lrs $AC0.L, @0x0023 06c3 1f1f mrr $AX0.L, $AC1.M 06c4 009a 0000 lri $AX0.H, #0x0000 06c6 5800 subax $ACC0, $AX0 06c7 0290 06d6 jge 0x06d6 06c9 8100 clr $ACC0 06ca 2619 lrs $AC0.M, @0x0019 06cb b100 tst $ACC0 06cc 0294 06d0 jnz 0x06d0 06ce 02bf 066a call 0x066a 06d0 02bf 0628 call 0x0628 06d2 02bf 064f call 0x064f 06d4 029f 06ad jmp 0x06ad } { 06d6 8100 clr $ACC0 06d7 2619 lrs $AC0.M, @0x0019 06d8 b100 tst $ACC0 06d9 0294 06dd jnz 0x06dd 06db 02bf 066a call 0x066a 06dd 02bf 0636 call 0x0636 06df b900 tst $ACC1 06e0 0295 06e9 jz 0x06e9 06e2 02bf 064f call 0x064f 06e4 029f 06d6 jmp 0x06d6 } { 06e6 8100 clr $ACC0 06e7 005f loop $AC1.M 06e8 1b7e srri @$AR3, $AC0.M 06e9 0092 00ff lri $CR, #0x00ff 06eb 02df ret } { 06ec 00ff 0360 sr @0x0360, $AC1.M 06ee 00da 0362 lr $AX0.H, @0x0362 06f0 8600 tstaxh $AX0.H 06f1 0294 06fe jnz 0x06fe 06f3 0a01 lris $AX0.H, #0x01 06f4 00fa 0362 sr @0x0362, $AX0.H 06f6 2620 lrs $AC0.M, @0x0020 06f7 2421 lrs $AC0.L, @0x0021 06f8 009f 0005 lri $AC1.M, #0x0005 06fa 02bf 0103 call 0x0103 06fc 0092 0004 lri $CR, #0x0004 06fe 0080 ffd3 lri $AR0, #0xffd3 0700 0084 0000 lri $IX0, #0x0000 0702 199e lrrn $AC0.M, @$AR0 0703 1ffe mrr $AC1.M, $AC0.M 0704 1401 lsl $ACC0, #1 0705 0240 001e andi $AC0.M, #0x001e 0707 0200 0300 addi $AC0.M, #0x0300 0709 1c3e mrr $AR1, $AC0.M 070a 157c lsr $ACC1, #-4 070b 0340 000f andi $AC1.M, #0x000f 070d 0a11 lris $AX0.H, #0x11 070e 5500 subr $ACC1, $AX0.H 070f 009a 00f0 lri $AX0.H, #0x00f0 0711 009b 000f lri $AX1.H, #0x000f 0713 0082 0370 lri $AR2, #0x0370 0715 1998 lrrn $AX0.L, @$AR0 0716 6000 movr $ACC0, $AX0.L 0717 1107 071e bloopi #0x07, 0x071e { 0719 3400 andr $AC0.M, $AX0.H 071a 1408 lsl $ACC0, #8 071b 6032 movr's $ACC0, $AX0.L : @$AR2, $AC0.M 071c 3644 andr'ln $AC0.M, $AX1.H : $AX0.L, @$AR0 071d 140c lsl $ACC0, #12 071e 6032 movr's $ACC0, $AX0.L : @$AR2, $AC0.M } 071f 3400 andr $AC0.M, $AX0.H 0720 1408 lsl $ACC0, #8 0721 6032 movr's $ACC0, $AX0.L : @$AR2, $AC0.M 0722 3600 andr $AC0.M, $AX1.H 0723 140c lsl $ACC0, #12 0724 1b5e srri @$AR2, $AC0.M 0725 8f00 set40 0726 1f7f mrr $AX1.H, $AC1.M 0727 203e lrs $AX0.L, @0x003e 0728 273f lrs $AC1.M, @0x003f 0729 193a lrri $AX0.H, @$AR1 072a 1939 lrri $AX1.L, @$AR1 072b 0080 0370 lri $AR0, #0x0370 072d 0081 0430 lri $AR1, #0x0430 072f 1c80 mrr $IX0, $AR0 0730 a000 mulx $AX0.L, $AX1.L 0731 ea70 maddc'l $AC1.M, $AX1.L : $AC0.M, @$AR0 0732 1108 073b bloopi #0x08, 0x073b 0734 3a93 asrnrx'mv $ACC0, $AX1.H : $AX0.L, $AC1.M 0735 a478 mulxac'l $AX0.L, $AX1.L, $ACC0 : $AC1.M, @$AR0 0736 1485 asl $ACC0, #5 0737 e831 maddc's $AC0.M, $AX1.L : @$AR1, $AC0.M 0738 3b92 asrnrx'mv $ACC1, $AX1.H : $AX0.L, $AC0.M 0739 a570 mulxac'l $AX0.L, $AX1.L, $ACC1 : $AC0.M, @$AR0 073a 1585 asl $ACC1, #5 073b ea39 maddc's $AC1.M, $AX1.L : @$AR1, $AC1.M 073c 8e00 set16 073d 8900 clr $ACC1 073e 00df 0360 lr $AC1.M, @0x0360 0740 02df ret } { 0741 0080 0346 lri $AR0, #0x0346 0743 02bf 0051 call 0x0051 0745 8100 clr $ACC0 0746 0080 0430 lri $AR0, #0x0430 0748 1010 loopi #0x10 0749 1b1e srri @$AR0, $AC0.M 074a 00fe 0442 sr @0x0442, $AC0.M 074c 00fe 0443 sr @0x0443, $AC0.M 074e 009c 0000 lri $AC0.L, #0x0000 0750 00fe 041c sr @0x041c, $AC0.M 0752 00fc 041d sr @0x041d, $AC0.L 0754 009e 0100 lri $AC0.M, #0x0100 0756 009c f100 lri $AC0.L, #0xf100 0758 00fe 044e sr @0x044e, $AC0.M 075a 00fc 044f sr @0x044f, $AC0.L 075c 009e 0040 lri $AC0.M, #0x0040 075e 009c 0000 lri $AC0.L, #0x0000 0760 00fe 044c sr @0x044c, $AC0.M 0762 00fc 044d sr @0x044d, $AC0.L 0764 009e 0009 lri $AC0.M, #0x0009 0766 00fe 0440 sr @0x0440, $AC0.M 0768 009e 0010 lri $AC0.M, #0x0010 076a 00fe 041a sr @0x041a, $AC0.M 076c 009e 0100 lri $AC0.M, #0x0100 076e 009c f250 lri $AC0.L, #0xf250 0770 00fe 044a sr @0x044a, $AC0.M 0772 00fc 044b sr @0x044b, $AC0.L 0774 009c 0000 lri $AC0.L, #0x0000 0776 00fe 0448 sr @0x0448, $AC0.M 0778 00fc 0449 sr @0x0449, $AC0.L 077a 009e 0001 lri $AC0.M, #0x0001 077c 00fe 0441 sr @0x0441, $AC0.M 077e 8900 clr $ACC1 077f 00ff 0401 sr @0x0401, $AC1.M 0781 1180 079b bloopi #0x80, 0x079b { 0783 0083 0580 lri $AR3, #0x0580 0785 009f 0100 lri $AC1.M, #0x0100 0787 02bf 06a6 call 0x06a6 0789 0081 0346 lri $AR1, #0x0346 078b 193e lrri $AC0.M, @$AR1 078c 18bc lrrd $AC0.L, @$AR1 078d 009f 0580 lri $AC1.M, #0x0580 078f 0080 0100 lri $AR0, #0x0100 0791 02bf 008b call 0x008b 0793 0081 0346 lri $AR1, #0x0346 0795 193e lrri $AC0.M, @$AR1 0796 18bc lrrd $AC0.L, @$AR1 0797 0098 0200 lri $AX0.L, #0x0200 0799 7000 addaxl $ACC0, $AX0.L 079a 1b3e srri @$AR1, $AC0.M 079b 1abc srrd @$AR1, $AC0.L } 079c 029f 0049 jmp 0x0049 } void 079e_AudioFormatRAW20() { 079e 8900 clr $ACC1 079f 009f 0050 lri $AC1.M, #0x0050 07a1 0083 0520 lri $AR3, #0x0520 07a3 02bf 07b9 call 0x07b9 07a5 029f 04e7 jmp 0x04e7 } void 07a7_AudioFormatRAW21() { 07a7 00d8 0402 lr $AX0.L, @0x0402 07a9 8100 clr $ACC0 07aa 8900 clr $ACC1 07ab 00dc 0418 lr $AC0.L, @0x0418 07ad 009a 0050 lri $AX0.H, #0x0050 07af 9000 mul $AX0.L, $AX0.H 07b0 9400 mulac $AX0.L, $AX0.H, $ACC0 07b1 1404 lsl $ACC0, #4 07b2 1ffe mrr $AC1.M, $AC0.M 07b3 0083 0580 lri $AR3, #0x0580 07b5 02bf 07b9 call 0x07b9 07b7 029f 04df jmp 0x04df } { 07b9 0092 0004 lri $CR, #0x0004 07bb 8100 clr $ACC0 07bc 2622 lrs $AC0.M, @0x0022 07bd 2423 lrs $AC0.L, @0x0023 07be 1f1f mrr $AX0.L, $AC1.M 07bf 009a 0000 lri $AX0.H, #0x0000 07c1 5800 subax $ACC0, $AX0 07c2 0290 07d9 jge 0x07d9 07c4 8900 clr $ACC1 07c5 00c0 0423 lr $AR0, @0x0423 07c7 02bf 07fe call 0x07fe 07c9 8100 clr $ACC0 07ca 1fd8 mrr $AC0.M, $AX0.L 07cb 2223 lrs $AX0.H, @0x0023 07cc 5400 subr $ACC0, $AX0.H 07cd 0007 dar $AR3 07ce 1979 lrri $AX1.L, @$AR3 07cf 005e loop $AC0.M 07d0 1b79 srri @$AR3, $AX1.L 07d1 009f 0001 lri $AC1.M, #0x0001 07d3 2f01 srs @0x0001, $AC1.M 07d4 8900 clr $ACC1 07d5 2f23 srs @0x0023, $AC1.M 07d6 0092 00ff lri $CR, #0x00ff 07d8 02df ret } { 07d9 2e22 srs @0x0022, $AC0.M 07da 2c23 srs @0x0023, $AC0.L 07db 8100 clr $ACC0 07dc 8900 clr $ACC1 07dd 264a lrs $AC0.M, @0x004a 07de 271c lrs $AC1.M, @0x001c 07df 5c00 sub $ACC0, $ACC1 07e0 2e1e srs @0x001e, $AC0.M 07e1 5000 subr $ACC0, $AX0.L 07e2 0290 07f8 jge 0x07f8 07e4 00c0 041e lr $AR0, @0x041e 07e6 02bf 07fe call 0x07fe 07e8 8100 clr $ACC0 07e9 1fd8 mrr $AC0.M, $AX0.L 07ea 221e lrs $AX0.H, @0x001e 07eb 5400 subr $ACC0, $AX0.H 07ec 1c1e mrr $AR0, $AC0.M 07ed 8100 clr $ACC0 07ee 2e1c srs @0x001c, $AC0.M 07ef 2648 lrs $AC0.M, @0x0048 07f0 2449 lrs $AC0.L, @0x0049 07f1 2e4c srs @0x004c, $AC0.M 07f2 2c4d srs @0x004d, $AC0.L 07f3 02bf 07fe call 0x07fe 07f5 0092 00ff lri $CR, #0x00ff 07f7 02df ret } { 07f8 1c18 mrr $AR0, $AX0.L 07f9 02bf 07fe call 0x07fe 07fb 0092 00ff lri $CR, #0x00ff 07fd 02df ret } { 07fe 8100 clr $ACC0 07ff 1fc0 mrr $AC0.M, $AR0 0800 b100 tst $ACC0 0801 02d5 retz 0802 8900 clr $ACC1 0803 271c lrs $AC1.M, @0x001c 0804 0340 0001 andi $AC1.M, #0x0001 0806 009b 0000 lri $AX1.H, #0x0000 0808 1f3f mrr $AX1.L, $AC1.M 0809 264c lrs $AC0.M, @0x004c 080a 244d lrs $AC0.L, @0x004d 080b 8900 clr $ACC1 080c 251c lrs $AC1.L, @0x001c 080d 1501 lsl $ACC1, #1 080e 4c00 add $ACC0, $ACC1 080f 5a00 subax $ACC0, $AX1 0810 5a00 subax $ACC0, $AX1 0811 1c20 mrr $AR1, $AR0 0812 1fe0 mrr $AC1.M, $AR0 0813 0502 addis $AC1.M, #0x02 0814 1c1f mrr $AR0, $AC1.M 0815 009f 0a00 lri $AC1.M, #0x0a00 0817 0092 00ff lri $CR, #0x00ff 0819 02bf 007e call 0x007e 081b 0092 0004 lri $CR, #0x0004 081d 271c lrs $AC1.M, @0x001c 081e 1f61 mrr $AX1.H, $AR1 081f 4700 addr $ACC1, $AX1.H 0820 2f1c srs @0x001c, $AC1.M 0821 0080 0a00 lri $AR0, #0x0a00 0823 8900 clr $ACC1 0824 1ff9 mrr $AC1.M, $AX1.L 0825 b900 tst $ACC1 0826 0274 ifnz 0827 0008 iar $AR0 0828 8900 clr $ACC1 0829 1fe1 mrr $AC1.M, $AR1 082a 191e lrri $AC0.M, @$AR0 082b 0701 cmpis $AC1.M, #0x01 082c 0293 0835 jle 0x0835 082e 191a lrri $AX0.H, @$AR0 082f 05fe addis $AC1.M, #0xfe 0830 005f loop $AC1.M 0831 64a0 movr'ls $ACC0, $AX0.H : $AX0.H, $AC0.M 0832 1b7e srri @$AR3, $AC0.M 0833 1b7a srri @$AR3, $AX0.H 0834 02df ret } { 0835 1b7e srri @$AR3, $AC0.M 0836 02df ret } { 0837 0092 0004 lri $CR, #0x0004 0839 2201 lrs $AX0.H, @0x0001 083a 8600 tstaxh $AX0.H 083b 0294 0868 jnz 0x0868 083d 2204 lrs $AX0.H, @0x0004 083e 8600 tstaxh $AX0.H 083f 02b4 08bc callnz 0x08bc 0841 2219 lrs $AX0.H, @0x0019 0842 8600 tstaxh $AX0.H 0843 0295 085d jz 0x085d 0845 009e 0430 lri $AC0.M, #0x0430 0847 4400 addr $ACC0, $AX0.H 0848 1c1e mrr $AR0, $AC0.M 0849 0e10 lris $AC0.M, #0x10 084a 5400 subr $ACC0, $AX0.H 084b 1f7e mrr $AX1.H, $AC0.M 084c 02bf 0699 call 0x0699 084e d900 cmpar $ACC1, $AX1.H 084f 0292 085c jg 0x085c 0851 0295 0858 jz 0x0858 0853 2619 lrs $AC0.M, @0x0019 0854 4c00 add $ACC0, $ACC1 0855 2e19 srs @0x0019, $AC0.M 0856 029f 08b9 jmp 0x08b9 0858 8100 clr $ACC0 0859 2e19 srs @0x0019, $AC0.M 085a 029f 08b9 jmp 0x08b9 085c 5700 subr $ACC1, $AX1.H 085d 8100 clr $ACC0 085e 2605 lrs $AC0.M, @0x0005 085f b100 tst $ACC0 0860 0295 0879 jz 0x0879 0862 8100 clr $ACC0 0863 2e05 srs @0x0005, $AC0.M 0864 2241 lrs $AX0.H, @0x0041 0865 8600 tstaxh $AX0.H 0866 0294 086f jnz 0x086f 0868 8100 clr $ACC0 0869 005f loop $AC1.M 086a 1b7e srri @$AR3, $AC0.M 086b 7400 incm $AC0.M 086c 2e01 srs @0x0001, $AC0.M 086d 029f 08b9 jmp 0x08b9 086f 2648 lrs $AC0.M, @0x0048 0870 2449 lrs $AC0.L, @0x0049 0871 2e1c srs @0x001c, $AC0.M 0872 2c1d srs @0x001d, $AC0.L 0873 02bf 08c1 call 0x08c1 0875 2642 lrs $AC0.M, @0x0042 0876 2443 lrs $AC0.L, @0x0043 0877 2e3f srs @0x003f, $AC0.M 0878 2c3e srs @0x003e, $AC0.L 0879 00ff 0360 sr @0x0360, $AC1.M 087b 2620 lrs $AC0.M, @0x0020 087c 2421 lrs $AC0.L, @0x0021 087d 009f 0005 lri $AC1.M, #0x0005 087f 02bf 0103 call 0x0103 0881 0092 0004 lri $CR, #0x0004 0883 8900 clr $ACC1 0884 00ff 0362 sr @0x0362, $AC1.M 0886 00df 0360 lr $AC1.M, @0x0360 0888 02bf 08db call 0x08db 088a 8100 clr $ACC0 088b 00de 0362 lr $AC0.M, @0x0362 088d 2240 lrs $AX0.H, @0x0040 088e 4400 addr $ACC0, $AX0.H 088f 00fe 0362 sr @0x0362, $AC0.M 0891 8100 clr $ACC0 0892 2622 lrs $AC0.M, @0x0022 0893 2423 lrs $AC0.L, @0x0023 0894 0a01 lris $AX0.H, #0x01 0895 0081 0405 lri $AR1, #0x0405 0897 7a00 dec $ACC0 0898 b100 tst $ACC0 0899 0275 ifz 089a 1a3a srr @$AR1, $AX0.H 089b 2e22 srs @0x0022, $AC0.M 089c 2c23 srs @0x0023, $AC0.L 089d 0710 cmpis $AC1.M, #0x10 089e 0293 08a7 jle 0x08a7 08a0 05f0 addis $AC1.M, #0xf0 08a1 2205 lrs $AX0.H, @0x0005 08a2 8600 tstaxh $AX0.H 08a3 0294 0862 jnz 0x0862 08a5 029f 0888 jmp 0x0888 08a7 0275 ifz 08a8 8900 clr $ACC1 08a9 2f19 srs @0x0019, $AC1.M 08aa 1fc3 mrr $AC0.M, $AR3 08ab 04f0 addis $AC0.M, #0xf0 08ac 1c1e mrr $AR0, $AC0.M 08ad 0083 0430 lri $AR3, #0x0430 08af 0e10 lris $AC0.M, #0x10 08b0 02bf 0699 call 0x0699 08b2 2620 lrs $AC0.M, @0x0020 08b3 2421 lrs $AC0.L, @0x0021 08b4 00d8 0362 lr $AX0.L, @0x0362 08b6 7000 addaxl $ACC0, $AX0.L 08b7 2c21 srs @0x0021, $AC0.L 08b8 2e20 srs @0x0020, $AC0.M 08b9 0092 00ff lri $CR, #0x00ff 08bb 02df ret } { 08bc 8100 clr $ACC0 08bd 2e1c srs @0x001c, $AC0.M 08be 2e1d srs @0x001d, $AC0.M 08bf 2e3e srs @0x003e, $AC0.M 08c0 2e3f srs @0x003f, $AC0.M 08c1 231c lrs $AX1.H, @0x001c 08c2 211d lrs $AX1.L, @0x001d 08c3 264a lrs $AC0.M, @0x004a 08c4 244b lrs $AC0.L, @0x004b 08c5 5a00 subax $ACC0, $AX1 08c6 147c lsr $ACC0, #-4 08c7 2e22 srs @0x0022, $AC0.M 08c8 2c23 srs @0x0023, $AC0.L 08c9 261c lrs $AC0.M, @0x001c 08ca 241d lrs $AC0.L, @0x001d 08cb 147c lsr $ACC0, #-4 08cc 2240 lrs $AX0.H, @0x0040 08cd c010 mulc'mv $AC0.M, $AX0.H : $AX0.L, $AC0.L 08ce 9600 mulmv $AX0.L, $AX0.H, $ACC0 08cf f000 lsl16 $ACC0 08d0 4e00 addp $ACC0 08d1 234c lrs $AX1.H, @0x004c 08d2 214d lrs $AX1.L, @0x004d 08d3 4a00 addax $ACC0, $AX1 08d4 2e20 srs @0x0020, $AC0.M 08d5 2c21 srs @0x0021, $AC0.L 08d6 8100 clr $ACC0 08d7 2e05 srs @0x0005, $AC0.M 08d8 2e19 srs @0x0019, $AC0.M 08d9 2e04 srs @0x0004, $AC0.M 08da 02df ret } { 08db 00ff 0360 sr @0x0360, $AC1.M 08dd 0080 ffd3 lri $AR0, #0xffd3 08df 0084 0000 lri $IX0, #0x0000 08e1 199e lrrn $AC0.M, @$AR0 08e2 1ffe mrr $AC1.M, $AC0.M 08e3 1401 lsl $ACC0, #1 08e4 0240 001e andi $AC0.M, #0x001e 08e6 0200 0300 addi $AC0.M, #0x0300 08e8 1c3e mrr $AR1, $AC0.M 08e9 157c lsr $ACC1, #-4 08ea 0340 000f andi $AC1.M, #0x000f 08ec 0a11 lris $AX0.H, #0x11 08ed 5500 subr $ACC1, $AX0.H 08ee 009a 00f0 lri $AX0.H, #0x00f0 08f0 009b 000f lri $AX1.H, #0x000f 08f2 0082 0370 lri $AR2, #0x0370 08f4 1998 lrrn $AX0.L, @$AR0 08f5 6000 movr $ACC0, $AX0.L 08f6 1107 08fd bloopi #0x07, 0x08fd { 08f8 3400 andr $AC0.M, $AX0.H 08f9 1408 lsl $ACC0, #8 08fa 6032 movr's $ACC0, $AX0.L : @$AR2, $AC0.M 08fb 3644 andr'ln $AC0.M, $AX1.H : $AX0.L, @$AR0 08fc 140c lsl $ACC0, #12 08fd 6032 movr's $ACC0, $AX0.L : @$AR2, $AC0.M } 08fe 3400 andr $AC0.M, $AX0.H 08ff 1408 lsl $ACC0, #8 0900 6032 movr's $ACC0, $AX0.L : @$AR2, $AC0.M 0901 3600 andr $AC0.M, $AX1.H 0902 140c lsl $ACC0, #12 0903 1b5e srri @$AR2, $AC0.M 0904 8f00 set40 0905 1f7f mrr $AX1.H, $AC1.M 0906 203e lrs $AX0.L, @0x003e 0907 273f lrs $AC1.M, @0x003f 0908 193a lrri $AX0.H, @$AR1 0909 1939 lrri $AX1.L, @$AR1 090a 0080 0370 lri $AR0, #0x0370 090c 1c80 mrr $IX0, $AR0 090d a000 mulx $AX0.L, $AX1.L 090e ea70 maddc'l $AC1.M, $AX1.L : $AC0.M, @$AR0 090f 3a93 asrnrx'mv $ACC0, $AX1.H : $AX0.L, $AC1.M 0910 a478 mulxac'l $AX0.L, $AX1.L, $ACC0 : $AC1.M, @$AR0 0911 1485 asl $ACC0, #5 0912 e833 maddc's $AC0.M, $AX1.L : @$AR3, $AC0.M 0913 3b92 asrnrx'mv $ACC1, $AX1.H : $AX0.L, $AC0.M 0914 a570 mulxac'l $AX0.L, $AX1.L, $ACC1 : $AC0.M, @$AR0 0915 1585 asl $ACC1, #5 0916 ea3b maddc's $AC1.M, $AX1.L : @$AR3, $AC1.M 0917 1106 0920 bloopi #0x06, 0x0920 { 0919 3a93 asrnrx'mv $ACC0, $AX1.H : $AX0.L, $AC1.M 091a a478 mulxac'l $AX0.L, $AX1.L, $ACC0 : $AC1.M, @$AR0 091b 1485 asl $ACC0, #5 091c e833 maddc's $AC0.M, $AX1.L : @$AR3, $AC0.M 091d 3b92 asrnrx'mv $ACC1, $AX1.H : $AX0.L, $AC0.M 091e a570 mulxac'l $AX0.L, $AX1.L, $ACC1 : $AC0.M, @$AR0 091f 1585 asl $ACC1, #5 0920 ea3b maddc's $AC1.M, $AX1.L : @$AR3, $AC1.M } 0921 3a93 asrnrx'mv $ACC0, $AX1.H : $AX0.L, $AC1.M 0922 a478 mulxac'l $AX0.L, $AX1.L, $ACC0 : $AC1.M, @$AR0 0923 1485 asl $ACC0, #5 0924 e833 maddc's $AC0.M, $AX1.L : @$AR3, $AC0.M 0925 3b92 asrnrx'mv $ACC1, $AX1.H : $AX0.L, $AC0.M 0926 a500 mulxac $AX0.L, $AX1.L, $ACC1 0927 1585 asl $ACC1, #5 0928 1b7f srri @$AR3, $AC1.M 0929 2e3e srs @0x003e, $AC0.M 092a 2f3f srs @0x003f, $AC1.M 092b 8e00 set16 092c 8900 clr $ACC1 092d 00df 0360 lr $AC1.M, @0x0360 092f 02df ret } { 0930 0083 0520 lri $AR3, #0x0520 0932 00de 041b lr $AC0.M, @0x041b 0934 1050 loopi #0x50 0935 1b7e srri @$AR3, $AC0.M 0936 029f 04e7 jmp 0x04e7 } 0938 0000 nop 0939 0000 nop 093a 0000 nop 093b 0000 nop 093c 0000 nop 093d 0000 nop 093e 0000 nop 093f 0000 nop