diff --git a/Docs/DSP/Crazy Taxi.txt b/Docs/DSP/Crazy Taxi.txt index cfc9c41fed..a5e8469038 100644 --- a/Docs/DSP/Crazy Taxi.txt +++ b/Docs/DSP/Crazy Taxi.txt @@ -20,8 +20,8 @@ // addresses to buffers -0x0E08 // initialized to 0x0000 -0x0E09 // initialized to 0x0140 +0x0E08 // BufferLeft +0x0E09 // BufferRight 0x0E0A // 0x0E0B 0x0E0C @@ -1658,10 +1658,10 @@ Main() 0768 00c0 0e40 LR $0, @0x0e40 // PB->PBInitialTimeDelay->offsetLeft 076a 0081 0b89 LRI $1, #0x0b89 // PB->Mixer... struct offset -076c 00c2 0e08 LR $2, @0x0e08 // Buffer1 (0x0000 all the time) +076c 00c2 0e08 LR $2, @0x0e08 // Buffer1 (0x0000 all the time - Left Channel) 076e 1c62 MRR $3, $2 // Buffer2 076f 00c4 0e41 LR $4, @0x0e41 // PB->PBInitialTimeDelay->offsetRight -0771 00c5 0e09 LR $5, @0x0e09 // Buffer3 (0x0140 all the time) +0771 00c5 0e09 LR $5, @0x0e09 // Buffer3 (0x0140 all the time - Right Channel) 0773 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 0775 00f8 0ba9 SR @0x0ba9, $24 // mixer return value1 0777 00fb 0bac SR @0x0bac, $27 // mixer return value2 @@ -1669,12 +1669,12 @@ Main() // fn1 077a 00c0 0e40 LR $0, @0x0e40 -077c 0081 0b89 LRI $1, #0x0b89 // PB mixer settings // PB mixer settings +077c 0081 0b89 LRI $1, #0x0b89 // PB mixer settings // PB mixer settings 077e 00c2 0e08 LR $2, @0x0e08 0780 1c62 MRR $3, $2 0781 00c4 0e41 LR $4, @0x0e41 0783 00c5 0e09 LR $5, @0x0e09 -0785 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +0785 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 0787 00f8 0ba9 SR @0x0ba9, $24 0789 00fb 0bac SR @0x0bac, $27 078b 00c0 0e40 LR $0, @0x0e40 @@ -1683,19 +1683,19 @@ Main() 0791 1c62 MRR $3, $2 0792 00c4 0e41 LR $4, @0x0e41 0794 00c5 0e0c LR $5, @0x0e0c -0796 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +0796 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 0798 00f8 0baa SR @0x0baa, $24 079a 00fb 0bad SR @0x0bad, $27 079c 02df RET // fn2 079d 00c0 0e40 LR $0, @0x0e40 -079f 0081 0b89 LRI $1, #0x0b89 // PB mixer settings // PB mixer settings +079f 0081 0b89 LRI $1, #0x0b89 // PB mixer settings 07a1 00c2 0e08 LR $2, @0x0e08 07a3 1c62 MRR $3, $2 07a4 00c4 0e41 LR $4, @0x0e41 07a6 00c5 0e09 LR $5, @0x0e09 -07a8 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +07a8 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 07aa 00f8 0ba9 SR @0x0ba9, $24 07ac 00fb 0bac SR @0x0bac, $27 07ae 00c0 0e40 LR $0, @0x0e40 @@ -1704,7 +1704,7 @@ Main() 07b4 1c62 MRR $3, $2 07b5 00c4 0e41 LR $4, @0x0e41 07b7 00c5 0e0f LR $5, @0x0e0f -07b9 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +07b9 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 07bb 00f8 0bab SR @0x0bab, $24 07bd 00fb 0bae SR @0x0bae, $27 07bf 02df RET @@ -1716,7 +1716,7 @@ Main() 07c6 1c62 MRR $3, $2 07c7 00c4 0e41 LR $4, @0x0e41 07c9 00c5 0e09 LR $5, @0x0e09 -07cb 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +07cb 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 07cd 00f8 0ba9 SR @0x0ba9, $24 07cf 00fb 0bac SR @0x0bac, $27 07d1 00c0 0e40 LR $0, @0x0e40 @@ -1725,7 +1725,7 @@ Main() 07d7 1c62 MRR $3, $2 07d8 00c4 0e41 LR $4, @0x0e41 07da 00c5 0e0c LR $5, @0x0e0c -07dc 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +07dc 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 07de 00f8 0baa SR @0x0baa, $24 07e0 00fb 0bad SR @0x0bad, $27 07e2 00c0 0e40 LR $0, @0x0e40 @@ -1734,7 +1734,7 @@ Main() 07e8 1c62 MRR $3, $2 07e9 00c4 0e41 LR $4, @0x0e41 07eb 00c5 0e0f LR $5, @0x0e0f -07ed 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +07ed 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 07ef 00f8 0bab SR @0x0bab, $24 07f1 00fb 0bae SR @0x0bae, $27 07f3 02df RET @@ -1746,14 +1746,14 @@ Main() 07fa 1c62 MRR $3, $2 07fb 00c4 0e41 LR $4, @0x0e41 07fd 00c5 0e09 LR $5, @0x0e09 -07ff 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +07ff 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 0801 00f8 0ba9 SR @0x0ba9, $24 0803 00fb 0bac SR @0x0bac, $27 0805 00c0 0e43 LR $0, @0x0e43 0807 0081 0b97 LRI $1, #0x0b97 0809 00c2 0e0a LR $2, @0x0e0a 080b 1c62 MRR $3, $2 -080c 02bf 81f9 CALL 0x81f9 // Call second ROM mixer function +080c 02bf 81f9 CALL 0x81f9 // Call second ROM mixer function 080e 00f8 0baf SR @0x0baf, $24 0810 02df RET @@ -1764,7 +1764,7 @@ Main() 0817 1c62 MRR $3, $2 0818 00c4 0e41 LR $4, @0x0e41 081a 00c5 0e09 LR $5, @0x0e09 -081c 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +081c 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 081e 00f8 0ba9 SR @0x0ba9, $24 0820 00fb 0bac SR @0x0bac, $27 0822 00c0 0e40 LR $0, @0x0e40 @@ -1773,7 +1773,7 @@ Main() 0828 1c62 MRR $3, $2 0829 00c4 0e41 LR $4, @0x0e41 082b 00c5 0e0c LR $5, @0x0e0c -082d 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +082d 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 082f 00f8 0baa SR @0x0baa, $24 0831 00fb 0bad SR @0x0bad, $27 0833 00c0 0e43 LR $0, @0x0e43 @@ -1782,7 +1782,7 @@ Main() 0839 1c62 MRR $3, $2 083a 1c80 MRR $4, $0 083b 00c5 0e0d LR $5, @0x0e0d -083d 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +083d 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 083f 00f8 0baf SR @0x0baf, $24 0841 00fb 0bb0 SR @0x0bb0, $27 0843 02df RET @@ -1795,7 +1795,7 @@ Main() 084a 1c62 MRR $3, $2 084b 00c4 0e41 LR $4, @0x0e41 084d 00c5 0e09 LR $5, @0x0e09 -084f 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +084f 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 0851 00f8 0ba9 SR @0x0ba9, $24 0853 00fb 0bac SR @0x0bac, $27 0855 00c0 0e40 LR $0, @0x0e40 @@ -1804,7 +1804,7 @@ Main() 085b 1c62 MRR $3, $2 085c 00c4 0e41 LR $4, @0x0e41 085e 00c5 0e0f LR $5, @0x0e0f -0860 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +0860 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 0862 00f8 0bab SR @0x0bab, $24 0864 00fb 0bae SR @0x0bae, $27 0866 00c0 0e43 LR $0, @0x0e43 @@ -1813,7 +1813,7 @@ Main() 086c 1c62 MRR $3, $2 086d 1c80 MRR $4, $0 086e 00c5 0e0a LR $5, @0x0e0a -0870 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +0870 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 0872 00f8 0bb1 SR @0x0bb1, $24 0874 00fb 0baf SR @0x0baf, $27 0876 02df RET @@ -1826,7 +1826,7 @@ Main() 087d 1c62 MRR $3, $2 087e 00c4 0e41 LR $4, @0x0e41 0880 00c5 0e09 LR $5, @0x0e09 -0882 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +0882 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 0884 00f8 0ba9 SR @0x0ba9, $24 0886 00fb 0bac SR @0x0bac, $27 0888 00c0 0e40 LR $0, @0x0e40 @@ -1835,7 +1835,7 @@ Main() 088e 1c62 MRR $3, $2 088f 00c4 0e41 LR $4, @0x0e41 0891 00c5 0e0c LR $5, @0x0e0c -0893 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +0893 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 0895 00f8 0baa SR @0x0baa, $24 0897 00fb 0bad SR @0x0bad, $27 0899 00c0 0e40 LR $0, @0x0e40 @@ -1844,7 +1844,7 @@ Main() 089f 1c62 MRR $3, $2 08a0 00c4 0e41 LR $4, @0x0e41 08a2 00c5 0e0f LR $5, @0x0e0f -08a4 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +08a4 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 08a6 00f8 0bab SR @0x0bab, $24 08a8 00fb 0bae SR @0x0bae, $27 08aa 00c0 0e43 LR $0, @0x0e43 @@ -1853,7 +1853,7 @@ Main() 08b0 1c62 MRR $3, $2 08b1 1c80 MRR $4, $0 08b2 00c5 0e0d LR $5, @0x0e0d -08b4 02bf 80e7 CALL 0x80e7 // Call ROM mixer function +08b4 02bf 80e7 CALL 0x80e7 // Call ROM mixer function 08b6 00f8 0baf SR @0x0baf, $24 08b8 00fb 0bb0 SR @0x0bb0, $27 08ba 00c0 0e43 LR $0, @0x0e43 diff --git a/Docs/DSP/DSP_UC_Zelda.txt b/Docs/DSP/DSP_UC_Zelda.txt index 1292663c20..de123c8a22 100644 --- a/Docs/DSP/DSP_UC_Zelda.txt +++ b/Docs/DSP/DSP_UC_Zelda.txt @@ -137,11 +137,11 @@ 009a 0081 0382 LRI $R01, #0x0382 009c 009f 0000 LRI $AC1.M, #0x0000 009e 0080 0280 LRI $R00, #0x0280 -00a0 02bf 0523 CALL 0x0523 // DMAtoRAM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) +00a0 02bf 0523 CALL 0x0523 // RAMtoDMEM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) 00a2 0081 0384 LRI $R01, #0x0384 00a4 009f 0300 LRI $AC1.M, #0x0300 00a6 0080 0020 LRI $R00, #0x0020 -00a8 02bf 0523 CALL 0x0523 // DMAtoRAM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) +00a8 02bf 0523 CALL 0x0523 // RAMtoDMEM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) 00aa 00de 0345 LR $AC0.M, @0x0345 00ac 00fe 0342 SR @0x0342, $AC0.M 00ae 02bf 0bec CALL 0x0bec @@ -161,7 +161,7 @@ 00c1 0081 034c LRI $R01, #0x034c 00c3 009f 0400 LRI $AC1.M, #0x0400 00c5 0080 00c0 LRI $R00, #0x00c0 -00c7 02bf 0523 CALL 0x0523 // DMAtoRAM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) +00c7 02bf 0523 CALL 0x0523 // RAMtoDMEM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) 00c9 02df RET @@ -173,19 +173,19 @@ 00d3 193c LRRI $AC0.L, @$R01 00d4 0098 0000 LRI $AX0.L, #0x0000 00d6 7000 ADDAXL $AC0.M, $AX0.L -00d7 02bf 0532 CALL 0x0532 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +00d7 02bf 0532 CALL 0x0532 // DMEMtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 00d9 02df RET -// Called a lot, don't know what it does. Memset? +// CopyMemory(LEN=$AC1.M, *R00=SRC, *R03=DEST) 00da 191e LRRI $AC0.M, @$R00 00db 191a LRRI $AX0.H, @$R00 00dc 005f LOOP $AC1.M -00dd 64a0 MOVR.LS $AC0.M, $AX0.H : $AX0.H, $AC0.M +00dd 64a0 MOVR.LS $AC0.M, $AX0.H : $AX0.H, $AC0.M // ??? Does the .LS makes any sense? shouldnt it be just a load? 00de 1b7e SRRI @$R03, $AC0.M 00df 1b7a SRRI @$R03, $AX0.H 00e0 02df RET -// Noone seems to call this. Memswap? + 00e1 191e LRRI $AC0.M, @$R00 00e2 191a LRRI $AX0.H, @$R00 00e3 007f 00e8 BLOOP $AC1.M, 0x00e8 @@ -196,7 +196,7 @@ 00e9 0000 NOP 00ea 02df RET -// Multiply utility? Called a lot. Don't really know what it does. + 00eb 8a00 M2 00ec 157f LSR $ACC1, #0x3f 00ed 1c20 MRR $R01, $R00 @@ -212,7 +212,7 @@ 00f8 8b00 M0 00f9 02df RET -// Multiply utility 2? Called a lot. Don't really know what it does. + 00fa 8a00 M2 00fb 191a LRRI $AX0.H, @$R00 00fc 9050 MUL.L $AX0.L, $AX0.H : $AX0.H, @$R00 @@ -222,8 +222,6 @@ 0100 8b00 M0 0101 02df RET - - // Clear some memory (called by op2) 0102 8100 CLR $AC0.M 0103 8900 CLR $AC1.M @@ -267,7 +265,7 @@ 0132 bc00 MULXAC $AX0.H, $AX1.H, $AC0.M 0133 0080 0050 LRI $R00, #0x0050 0135 0508 ADDIS $ACC1, #0x08 -0136 02bf 0525 CALL 0x0525 // DMAtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +0136 02bf 0525 CALL 0x0525 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 0138 00de 0390 LR $AC0.M, @0x0390 013a 02a0 0001 ANDCF $AC0.M, #0x0001 013c 029d 0145 JNZ 0x0145 @@ -312,7 +310,7 @@ 017b 00c0 03a2 LR $R00, @0x03a2 017d 0083 0390 LRI $R03, #0x0390 017f 0f0e LRIS $AC1.M, #0x0e -0180 02bf 00da CALL 0x00da +0180 02bf 00da CALL 0x00da // CopyMemory(LEN=$AC1.M, *R00=SRC, *R03=DEST) 0182 00da 0390 LR $AX0.H, @0x0390 0184 8600 TSTAXH $AX0.H 0185 0295 0191 JEQ 0x0191 @@ -321,7 +319,7 @@ 018a 0550 ADDIS $ACC1, #0x50 018b 1c1f MRR $R00, $AC1.M 018c 0f06 LRIS $AC1.M, #0x06 -018d 02bf 00da CALL 0x00da +018d 02bf 00da CALL 0x00da // CopyMemory(LEN=$AC1.M, *R00=SRC, *R03=DEST) 018f 02bf 0127 CALL 0x0127 0191 00de 03a2 LR $AC0.M, @0x03a2 0193 0410 ADDIS $ACC0, #0x10 @@ -382,7 +380,7 @@ 01e3 b871 MULX.L $AX0.H, $AX1.H : $AC0.M, @$R01 01e4 bc00 MULXAC $AX0.H, $AX1.H, $AC0.M 01e5 0080 0050 LRI $R00, #0x0050 -01e7 02bf 0532 CALL 0x0532 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +01e7 02bf 0532 CALL 0x0532 // DMEMtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 01e9 02df RET @@ -409,7 +407,7 @@ 020c 00c0 03a2 LR $R00, @0x03a2 020e 0083 0390 LRI $R03, #0x0390 0210 0f0e LRIS $AC1.M, #0x0e -0211 02bf 00da CALL 0x00da +0211 02bf 00da CALL 0x00da // CopyMemory(LEN=$AC1.M, *R00=SRC, *R03=DEST) 0213 00da 0390 LR $AX0.H, @0x0390 0215 8600 TSTAXH $AX0.H 0216 0295 021a JEQ 0x021a @@ -430,7 +428,7 @@ 022a 0081 0386 LRI $R01, #0x0386 022c 009f 03a8 LRI $AC1.M, #0x03a8 022e 0080 0040 LRI $R00, #0x0040 -0230 02bf 0523 CALL 0x0523 // DMAtoRAM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) +0230 02bf 0523 CALL 0x0523 // RAMtoDMEM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) 0232 02df RET @@ -561,7 +559,7 @@ 02f2 1c7e MRR $R03, $AC0.M 02f3 0080 0440 LRI $R00, #0x0440 02f5 05fe ADDIS $ACC1, #0xfe -02f6 02bf 00da CALL 0x00da +02f6 02bf 00da CALL 0x00da // CopyMemory(LEN=$AC1.M, *R00=SRC, *R03=DEST) 02f8 0080 0490 LRI $R00, #0x0490 02fa 00c1 038f LR $R01, @0x038f 02fc 8900 CLR $AC1.M @@ -576,7 +574,7 @@ 030a 00df 0484 LR $AC1.M, @0x0484 030c 0340 001f ANDI $ACC1, #0x001f 030e 05fe ADDIS $ACC1, #0xfe -030f 02bf 00da CALL 0x00da +030f 02bf 00da CALL 0x00da // CopyMemory(LEN=$AC1.M, *R00=SRC, *R03=DEST) 0311 00de 0484 LR $AC0.M, @0x0484 0313 0240 0020 ANDI $ACC0, #0x0020 0315 0295 0333 JEQ 0x0333 @@ -727,7 +725,7 @@ 03ec 0081 0388 LRI $R01, #0x0388 03ee 009f 0d00 LRI $AC1.M, #0x0d00 03f0 0080 0050 LRI $R00, #0x0050 -03f2 02bf 0530 CALL 0x0530 // RAMtoDMEM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) +03f2 02bf 0530 CALL 0x0530 // DMEMtoRAM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) 03f4 0080 0fa0 LRI $R00, #0x0fa0 03f6 0083 0d60 LRI $R03, #0x0d60 03f8 0f50 LRIS $AC1.M, #0x50 @@ -738,7 +736,7 @@ 0401 0081 038a LRI $R01, #0x038a 0403 009f 0d60 LRI $AC1.M, #0x0d60 0405 0080 0050 LRI $R00, #0x0050 -0407 02bf 0530 CALL 0x0530 // RAMtoDMEM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) +0407 02bf 0530 CALL 0x0530 // DMEMtoRAM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) 0409 009a 0000 LRI $AX0.H, #0x0000 040b 0098 00a0 LRI $AX0.L, #0x00a0 040d 0080 0388 LRI $R00, #0x0388 @@ -760,25 +758,25 @@ 0426 193c LRRI $AC0.L, @$R01 0427 009f 0400 LRI $AC1.M, #0x0400 0429 00c0 0345 LR $R00, @0x0345 -042b 02bf 0525 CALL 0x0525 // DMAtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +042b 02bf 0525 CALL 0x0525 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 042d 0081 0348 LRI $R01, #0x0348 042f 193e LRRI $AC0.M, @$R01 0430 193c LRRI $AC0.L, @$R01 0431 009f 0800 LRI $AC1.M, #0x0800 0433 00c0 0345 LR $R00, @0x0345 -0435 02bf 0525 CALL 0x0525 // DMAtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +0435 02bf 0525 CALL 0x0525 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 0437 0081 0346 LRI $R01, #0x0346 0439 193e LRRI $AC0.M, @$R01 043a 193c LRRI $AC0.L, @$R01 043b 009f 0800 LRI $AC1.M, #0x0800 043d 00c0 0345 LR $R00, @0x0345 -043f 02bf 0532 CALL 0x0532 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +043f 02bf 0532 CALL 0x0532 // DMEMtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 0441 0081 0348 LRI $R01, #0x0348 0443 193e LRRI $AC0.M, @$R01 0444 193c LRRI $AC0.L, @$R01 0445 009f 0400 LRI $AC1.M, #0x0400 0447 00c0 0345 LR $R00, @0x0345 -0449 02bf 0532 CALL 0x0532 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +0449 02bf 0532 CALL 0x0532 // DMEMtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 044b 029f 0043 JMP 0x0043 @@ -791,13 +789,13 @@ 0456 193c LRRI $AC0.L, @$R01 0457 009f 0400 LRI $AC1.M, #0x0400 0459 00c0 0345 LR $R00, @0x0345 -045b 02bf 0525 CALL 0x0525 // DMAtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +045b 02bf 0525 CALL 0x0525 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 045d 0081 0348 LRI $R01, #0x0348 045f 193e LRRI $AC0.M, @$R01 0460 193c LRRI $AC0.L, @$R01 0461 009f 0400 LRI $AC1.M, #0x0400 0463 00c0 0345 LR $R00, @0x0345 -0465 02bf 0532 CALL 0x0532 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +0465 02bf 0532 CALL 0x0532 // DMEMtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 0467 029f 0043 JMP 0x0043 // Opcode_06() @@ -815,7 +813,7 @@ 047c 193c LRRI $AC0.L, @$R01 047d 009f 0400 LRI $AC1.M, #0x0400 047f 00c0 0345 LR $R00, @0x0345 -0481 02bf 0532 CALL 0x0532 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +0481 02bf 0532 CALL 0x0532 // DMEMtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 0483 029f 0043 JMP 0x0043 @@ -828,13 +826,13 @@ 048e 193c LRRI $AC0.L, @$R01 048f 009f 0400 LRI $AC1.M, #0x0400 0491 00c0 0344 LR $R00, @0x0344 -0493 02bf 0525 CALL 0x0525 // DMAtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +0493 02bf 0525 CALL 0x0525 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 0495 0081 0348 LRI $R01, #0x0348 0497 193e LRRI $AC0.M, @$R01 0498 193c LRRI $AC0.L, @$R01 0499 009f 0800 LRI $AC1.M, #0x0800 049b 00c0 0344 LR $R00, @0x0344 -049d 02bf 0525 CALL 0x0525 // DMAtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +049d 02bf 0525 CALL 0x0525 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 049f 0080 0400 LRI $R00, #0x0400 04a1 0083 0800 LRI $R03, #0x0800 04a3 0084 0000 LRI $R04, #0x0000 @@ -855,7 +853,7 @@ 04b7 193c LRRI $AC0.L, @$R01 04b8 009f 0400 LRI $AC1.M, #0x0400 04ba 00c0 0344 LR $R00, @0x0344 -04bc 02bf 0532 CALL 0x0532 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +04bc 02bf 0532 CALL 0x0532 // DMEMtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 04be 029f 0043 JMP 0x0043 @@ -931,10 +929,10 @@ 0520 02bf 04ea CALL 0x04ea 0522 02df RET -// DMAtoRAM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) +// RAMtoDMEM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) 0523 193e LRRI $AC0.M, @$R01 0524 193c LRRI $AC0.L, @$R01 -// DMAtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +// RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 0525 2fcd SRS @DSPA, $AC1.M 0526 0f00 LRIS $AC1.M, #0x00 0527 2fc9 SRS @DSCR, $AC1.M @@ -947,10 +945,10 @@ 052f 02df RET -// RAMtoDMEM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) +// DMEMtoRAM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) 0530 193e LRRI $AC0.M, @$R01 0531 193c LRRI $AC0.L, @$R01 -// RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +// DMEMtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 0532 2fcd SRS @DSPA, $AC1.M 0533 0f01 LRIS $AC1.M, #0x01 0534 029f 0527 JMP 0x0527 @@ -1029,7 +1027,7 @@ 0588 00df 0349 LR $AC1.M, @0x0349 058a 0340 ffff ANDI $ACC1, #0xffff 058c 00c0 0345 LR $R00, @0x0345 -058e 02bf 0523 CALL 0x0523 // DMAtoRAM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) +058e 02bf 0523 CALL 0x0523 // RAMtoDMEM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) 0590 029f 0043 JMP 0x0043 // Opcode_05() @@ -1040,7 +1038,7 @@ 059a 00df 0349 LR $AC1.M, @0x0349 059c 0340 ffff ANDI $ACC1, #0xffff 059e 00c0 0345 LR $R00, @0x0345 -05a0 02bf 0530 CALL 0x0530 // RAMtoDMEM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) +05a0 02bf 0530 CALL 0x0530 // DMEMtoRAM(DMEM=$AC1.M, *R01=MEMADDR, R00=Len) 05a2 029f 0043 JMP 0x0043 // ClearAccelerator() @@ -1611,9 +1609,6 @@ 086b 8900 CLR $AC1.M 086c 00df 0360 LR $AC1.M, @0x0360 086e 02df RET - - - 086f b100 TST $AC0.M 0870 02d5 RETEQ 0871 04fe ADDIS $ACC0, #0xfe @@ -1626,8 +1621,6 @@ 0879 6433 MOVR.S $AC0.M, $AX0.H : @$R03, $AC0.M 087a 1b7e SRRI @$R03, $AC0.M 087b 02df RET - - 087c 8100 CLR $AC0.M 087d 1f5e MRR $AX0.H, $AC0.M 087e 00d8 0402 LR $AX0.L, @0x0402 @@ -1640,27 +1633,24 @@ 088b 1c5f MRR $R02, $AC1.M 088c 175f CALLR $R02 088d 00fc 0430 SR @0x0430, $AC0.L -088f 029f 02d8 JMP 0x02d8 // 0 -0891 029f 08b2 JMP 0x08b2 // 1 -0893 029f 08ed JMP 0x08ed // 2 -0895 029f 08d5 JMP 0x08d5 // 3 -0897 029f 08c2 JMP 0x08c2 // 4 -0899 029f 08fb JMP 0x08fb // 5 -089b 029f 08b1 JMP 0x08b1 // 6, 9, 10, 14, 15, 16 -089d 029f 0919 JMP 0x0919 // 7 -089f 029f 091c JMP 0x091c // 8 -08a1 029f 08b1 JMP 0x08b1 // 9 -08a3 029f 08b1 JMP 0x08b1 // 10 -08a5 029f 093a JMP 0x093a // 11 -08a7 029f 08f3 JMP 0x08f3 // 12 -08a9 029f 08f7 JMP 0x08f7 // 13 -08ab 029f 08b1 JMP 0x08b1 // 14 -08ad 029f 08b1 JMP 0x08b1 // 15 -08af 029f 08b1 JMP 0x08b1 // 16 - -// Op2 - 6, 9, 10, 14, 15, 16 +088f 029f 02d8 JMP 0x02d8 +0891 029f 08b2 JMP 0x08b2 +0893 029f 08ed JMP 0x08ed +0895 029f 08d5 JMP 0x08d5 +0897 029f 08c2 JMP 0x08c2 +0899 029f 08fb JMP 0x08fb +089b 029f 08b1 JMP 0x08b1 +089d 029f 0919 JMP 0x0919 +089f 029f 091c JMP 0x091c +08a1 029f 08b1 JMP 0x08b1 +08a3 029f 08b1 JMP 0x08b1 +08a5 029f 093a JMP 0x093a +08a7 029f 08f3 JMP 0x08f3 +08a9 029f 08f7 JMP 0x08f7 +08ab 029f 08b1 JMP 0x08b1 +08ad 029f 08b1 JMP 0x08b1 +08af 029f 08b1 JMP 0x08b1 08b1 02df RET - 08b2 1401 LSL $ACC0, #0x01 08b3 009b c000 LRI $AX1.H, #0xc000 08b5 0099 4000 LRI $AX1.L, #0x4000 @@ -1673,8 +1663,6 @@ 08bf 4800 ADDAX $AC0.M, $AX0.L 08c0 147f LSR $ACC0, #0x3f 08c1 02df RET - -// Op2 - 4 08c2 1402 LSL $ACC0, #0x02 08c3 8900 CLR $AC1.M 08c4 1fb8 MRR $AC1.L, $AX0.L @@ -1690,8 +1678,6 @@ 08d2 4c00 ADD $AC0.M, $AC1.M 08d3 147e LSR $ACC0, #0x3e 08d4 02df RET - -// Op2 - 3 08d5 1401 LSL $ACC0, #0x01 08d6 0081 0ca0 LRI $R01, #0x0ca0 08d8 009b c000 LRI $AX1.H, #0xc000 @@ -1710,16 +1696,12 @@ 08ea 4c39 ADD.S $AC0.M, $AC1.M : @$R01, $AC1.M 08eb 147f LSR $ACC0, #0x3f 08ec 02df RET - -// Op2 - 2 08ed 8900 CLR $AC1.M 08ee 1fb8 MRR $AC1.L, $AX0.L 08ef 157f LSR $ACC1, #0x3f 08f0 1050 LOOPI #0x50 08f1 4c20 ADD.S $AC0.M, $AC1.M : @$R00, $AC0.L 08f2 02df RET - -// Op2 - 12 08f3 0082 0180 LRI $R02, #0x0180 08f5 029f 08fd JMP 0x08fd 08f7 0082 01c0 LRI $R02, #0x01c0 @@ -1747,13 +1729,9 @@ 0915 147a LSR $ACC0, #0x3a 0916 008a ffff LRI $R10, #0xffff 0918 02df RET - - 0919 1050 LOOPI #0x50 091a 1b18 SRRI @$R00, $AX0.L 091b 02df RET - - 091c 0082 0100 LRI $R02, #0x0100 091e 008a 003f LRI $R10, #0x003f 0920 0086 0000 LRI $R06, #0x0000 @@ -1777,9 +1755,6 @@ 0936 147a LSR $ACC0, #0x3a 0937 008a ffff LRI $R10, #0xffff 0939 02df RET - - - 093a 0082 0100 LRI $R02, #0x0100 093c 008a 003f LRI $R10, #0x003f 093e 0086 0000 LRI $R06, #0x0000 @@ -1809,9 +1784,6 @@ 095b 147a LSR $ACC0, #0x3a 095c 008a ffff LRI $R10, #0xffff 095e 02df RET - - - 095f 0080 01be LRI $R00, #0x01be 0961 1918 LRRI $AX0.L, @$R00 0962 191a LRRI $AX0.H, @$R00 @@ -1838,9 +1810,6 @@ 097e 0260 2000 ORI $ACC0, #0x2000 0980 02bf 0983 CALL 0x0983 0982 02df RET - - - 0983 b900 TST $AC1.M 0984 0272 IF_2 0985 7c00 NEG $AC0.M @@ -1852,9 +1821,6 @@ 098c 473b ADDR.S $AC1.M, $AX1.H : @$R03, $AC1.M 098d 473b ADDR.S $AC1.M, $AX1.H : @$R03, $AC1.M 098e 02df RET - - - 098f 0092 0004 LRI $CR, #0x0004 0991 2002 LRS $AX0.L, @0x0002 0992 8100 CLR $AC0.M @@ -2171,7 +2137,7 @@ 0b0b 1c1f MRR $R00, $AC1.M 0b0c 009f 0b00 LRI $AC1.M, #0x0b00 0b0e 0092 00ff LRI $CR, #0x00ff -0b10 02bf 0525 CALL 0x0525 // DMAtoRAM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) +0b10 02bf 0525 CALL 0x0525 // RAMtoDMEM(DMEM=$AC1.M, AC0=MEMADDR, R00=Len) 0b12 0092 0004 LRI $CR, #0x0004 0b14 2734 LRS $AC1.M, @0x0034 0b15 1f61 MRR $AX1.H, $R01 @@ -2223,8 +2189,6 @@ 0b49 0088 ffff LRI $R08, #0xffff 0b4b 8b00 M0 0b4c 02df RET - - 0b4d 8a00 M2 0b4e 05fe ADDIS $ACC1, #0xfe 0b4f 0083 03e8 LRI $R03, #0x03e8 @@ -2248,9 +2212,6 @@ 0b64 0088 ffff LRI $R08, #0xffff 0b66 8b00 M0 0b67 02df RET - - - 0b68 0083 03e8 LRI $R03, #0x03e8 0b6a 191e LRRI $AC0.M, @$R00 0b6b 191a LRRI $AX0.H, @$R00 @@ -2304,8 +2265,6 @@ 0ba1 1b5f SRRI @$R02, $AC1.M 0ba2 1b5e SRRI @$R02, $AC0.M 0ba3 02df RET - - 0ba4 0083 03e8 LRI $R03, #0x03e8 0ba6 191e LRRI $AC0.M, @$R00 0ba7 191a LRRI $AX0.H, @$R00 @@ -2406,7 +2365,7 @@ 0c15 0200 0a60 ADDI $ACC0, #0x0a60 0c17 1c7e MRR $R03, $AC0.M 0c18 0f4e LRIS $AC1.M, #0x4e -0c19 02bf 00da CALL 0x00da +0c19 02bf 00da CALL 0x00da // CopyMemory(LEN=$AC1.M, *R00=SRC, *R03=DEST) 0c1b 02df RET 0c1c 00de 03f1 LR $AC0.M, @0x03f1 0c1e 0200 0a60 ADDI $ACC0, #0x0a60 @@ -2465,8 +2424,6 @@ 0c6c 00fc 03f6 SR @0x03f6, $AC0.L 0c6e 008b ffff LRI $R11, #0xffff 0c70 02df RET - - 0c71 0f50 LRIS $AC1.M, #0x50 0c72 0080 0a00 LRI $R00, #0x0a00 0c74 0083 0d60 LRI $R03, #0x0d60 @@ -2478,8 +2435,6 @@ 0c7f 0098 3fff LRI $AX0.L, #0x3fff 0c81 02bf 00eb CALL 0x00eb 0c83 02df RET - - 0c84 8a00 M2 0c85 8f00 S16 0c86 8100 CLR $AC0.M @@ -2507,13 +2462,11 @@ 0ca6 8b00 M0 0ca7 8e00 S40 0ca8 02df RET - - 0ca9 b900 TST $AC1.M 0caa 0294 0caf JNE 0x0caf 0cac 6800 MOVAX $AC0.M, $AX0.L 0cad b100 TST $AC0.M -0cae 02d5 RETEQ // Return if equal ? +0cae 02d5 RETEQ 0caf 1c23 MRR $R01, $R03 0cb0 197e LRRI $AC0.M, @$R03 0cb1 191b LRRI $AX1.H, @$R00 @@ -2530,9 +2483,6 @@ 0cbe dcd3 MULCAC.LD $AX1.H, $AC1.M, $AC0.M : $AX0.L, $AX1.H, @$R03 0cbf 6231 MOVR.S $AC0.M, $AX1.L : @$R01, $AC0.M 0cc0 02df RET - - - 0cc1 8f00 S16 0cc2 8d00 SET15 0cc3 1c03 MRR $R00, $R03 @@ -2549,9 +2499,6 @@ 0cd0 8c00 CLR15 0cd1 8e00 S40 0cd2 02df RET - - - 0cd3 00da 0485 LR $AX0.H, @0x0485 0cd5 8600 TSTAXH $AX0.H 0cd6 0295 0ce5 JEQ 0x0ce5 @@ -2650,8 +2597,6 @@ 0d5f 0000 NOP 0d60 8e00 S40 0d61 02df RET - - 0d62 191f LRRI $AC1.M, @$R00 0d63 d078 MULC.L $AX0.H, $AC1.M : $AC1.M, @$R00 0d64 d678 MULCMV.L $AX0.H, $AC1.M, $AC0.M : $AC1.M, @$R00 @@ -2661,9 +2606,6 @@ 0d68 6e31 MOVP.S $AC0.M : @$R01, $AC0.M 0d69 1b3e SRRI @$R01, $AC0.M 0d6a 02df RET - - - 0d6b 8d00 SET15 0d6c 1f7e MRR $AX1.H, $AC0.M 0d6d 1918 LRRI $AX0.L, @$R00 @@ -2676,8 +2618,6 @@ 0d74 1b3e SRRI @$R01, $AC0.M 0d75 8c00 CLR15 0d76 02df RET - - 0d77 0d00 LRIS $AC1.L, #0x00 0d78 0d60 LRIS $AC1.L, #0x60 0d79 0f40 LRIS $AC1.M, #0x40 @@ -2780,8 +2720,6 @@ 0df0 6533 MOVR.S $AC1.M, $AX0.H : @$R03, $AC0.M 0df1 1b7f SRRI @$R03, $AC1.M 0df2 02df RET - - 0df3 1fe0 MRR $AC1.M, $R00 0df4 1c1f MRR $R00, $AC1.M 0df5 1128 0dfc BLOOPI #0x28, 0x0dfc @@ -2810,8 +2748,6 @@ 0e12 1a5b SRR @$R02, $AX1.H 0e13 02df RET - - // called by init code { a_04e8[0]=0x8240; @@ -2897,9 +2833,6 @@ 0e87 0098 8001 LRI $AX0.L, #0x8001 0e89 02bf 00eb CALL 0x00eb 0e8b 02df RET - - - 0e8c 0000 NOP 0e8d 0000 NOP 0e8e 0000 NOP diff --git a/Docs/DSP/GC DSP.pdf b/Docs/DSP/GC DSP.pdf new file mode 100644 index 0000000000..472a5dc4a8 Binary files /dev/null and b/Docs/DSP/GC DSP.pdf differ