summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Docs/DSP/Crazy Taxi.txt50
-rw-r--r--Docs/DSP/DSP_UC_Zelda.txt177
-rw-r--r--Docs/DSP/GC DSP.pdfbin0 -> 1001210 bytes
3 files changed, 80 insertions, 147 deletions
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
--- /dev/null
+++ b/Docs/DSP/GC DSP.pdf
Binary files differ