From 67674b466ea947b7596d65c2cc57510d062ed139 Mon Sep 17 00:00:00 2001 From: _NetNomad <43683711+TheNetNomad@users.noreply.github.com> Date: Tue, 19 Apr 2022 20:37:04 -0400 Subject: [PATCH] Update RAM.SRC Balance adjustments, and moved some balance functionality from the CPU to the compiler where it shoulda been all along. Also added a program stamp so that the version can be identified with a hex editor --- RAM.SRC | 166 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/RAM.SRC b/RAM.SRC index ba7ae55..1268b86 100644 --- a/RAM.SRC +++ b/RAM.SRC @@ -66,7 +66,7 @@ BEGIN BYTE WHILE_LOOP_LIMIT VALUE 0; BYTE DETECT_SLOT VALUE 0; BYTE RETURN_SLOT VALUE 0; - + FIELD VERSION_STAMP LENGTH 6 VALUE "V1.0.2" STRING FOUND_STRING LENGTH 9; STRING GOAL_STRING LENGTH 9; POINTER TO BYTE INTERNAL_DETECT_POINTER VALUE #FOUND_STRING; @@ -313,8 +313,8 @@ BEGIN BYTE OPM_I3_78 VALUE ^h1A; BYTE OPM_I3_80 VALUE ^h1F; BYTE OPM_I3_88 VALUE ^h1F; - BYTE OPM_I3_90 VALUE ^h0E; - BYTE OPM_I3_98 VALUE ^h0E; + BYTE OPM_I3_90 VALUE ^h10; + BYTE OPM_I3_98 VALUE ^h10; BYTE OPM_I3_A0 VALUE ^h01; BYTE OPM_I3_A8 VALUE ^h1F; BYTE OPM_I3_B0 VALUE ^h1F; @@ -1916,25 +1916,25 @@ BEGIN CALL SUB_OPM_WRITE; MOVE ^h6E TO OPM_REG_OUT; + SET OPM_BD_OFFSET = 7; SWITCH ON OPM_BD_VOL: - ^hF: MOVE ^h00 TO OPM_DATA_OUT; - ^hE: MOVE ^h04 TO OPM_DATA_OUT; - ^hD: MOVE ^h08 TO OPM_DATA_OUT; - ^hC: MOVE ^h0C TO OPM_DATA_OUT; - ^hB: MOVE ^h10 TO OPM_DATA_OUT; - ^hA: MOVE ^h14 TO OPM_DATA_OUT; - ^h9: MOVE ^h18 TO OPM_DATA_OUT; - ^h8: MOVE ^h1C TO OPM_DATA_OUT; - ^h7: MOVE ^h20 TO OPM_DATA_OUT; - ^h6: MOVE ^h24 TO OPM_DATA_OUT; - ^h5: MOVE ^h28 TO OPM_DATA_OUT; - ^h4: MOVE ^h2C TO OPM_DATA_OUT; - ^h3: MOVE ^h30 TO OPM_DATA_OUT; - ^h2: MOVE ^h34 TO OPM_DATA_OUT; - ^h1: MOVE ^h38 TO OPM_DATA_OUT; + ^hF: MOVE (^h00 + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^hE: MOVE (^h04 + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^hD: MOVE (^h08 + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^hC: MOVE (^h0C + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^hB: MOVE (^h10 + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^hA: MOVE (^h14 + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^h9: MOVE (^h18 + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^h8: MOVE (^h1C + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^h7: MOVE (^h20 + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^h6: MOVE (^h24 + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^h5: MOVE (^h28 + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^h4: MOVE (^h2C + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^h3: MOVE (^h30 + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^h2: MOVE (^h34 + OPM_BD_OFFSET) TO OPM_DATA_OUT; + ^h1: MOVE (^h38 + OPM_BD_OFFSET) TO OPM_DATA_OUT; ^h0: MOVE ^hFF TO OPM_DATA_OUT; ENDSWITCH; - ADD 7 TO OPM_DATA_OUT; {--DEBUG CALL SUB_OPM_WRITE; MOVE OPM_CNTL_REG TO OPM_REG_OUT; @@ -1948,25 +1948,25 @@ BEGIN CALL SUB_OPM_WRITE; MOVE ^h6E TO OPM_REG_OUT; + SET OPM_TM_OFFSET = 7; SWITCH ON OPM_TM_VOL: - ^hF: MOVE ^h08 TO OPM_DATA_OUT; - ^hE: MOVE ^h0C TO OPM_DATA_OUT; - ^hD: MOVE ^h10 TO OPM_DATA_OUT; - ^hC: MOVE ^h14 TO OPM_DATA_OUT; - ^hB: MOVE ^h18 TO OPM_DATA_OUT; - ^hA: MOVE ^h1C TO OPM_DATA_OUT; - ^h9: MOVE ^h20 TO OPM_DATA_OUT; - ^h8: MOVE ^h24 TO OPM_DATA_OUT; - ^h7: MOVE ^h28 TO OPM_DATA_OUT; - ^h6: MOVE ^h2C TO OPM_DATA_OUT; - ^h5: MOVE ^h30 TO OPM_DATA_OUT; - ^h4: MOVE ^h34 TO OPM_DATA_OUT; - ^h3: MOVE ^h38 TO OPM_DATA_OUT; - ^h2: MOVE ^h3C TO OPM_DATA_OUT; - ^h1: MOVE ^h40 TO OPM_DATA_OUT; + ^hF: MOVE (^h08 + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^hE: MOVE (^h0C + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^hD: MOVE (^h10 + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^hC: MOVE (^h14 + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^hB: MOVE (^h18 + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^hA: MOVE (^h1C + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^h9: MOVE (^h20 + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^h8: MOVE (^h24 + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^h7: MOVE (^h28 + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^h6: MOVE (^h2C + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^h5: MOVE (^h30 + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^h4: MOVE (^h34 + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^h3: MOVE (^h38 + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^h2: MOVE (^h3C + OPM_TM_OFFSET) TO OPM_DATA_OUT; + ^h1: MOVE (^h40 + OPM_TM_OFFSET) TO OPM_DATA_OUT; ^h0: MOVE ^hFF TO OPM_DATA_OUT; ENDSWITCH; - SUBTRACT 7 FROM OPM_DATA_OUT; {--DEBUG CALL SUB_OPM_WRITE; @@ -1989,25 +1989,25 @@ BEGIN CALL SUB_OPM_WRITE; MOVE ^h7F TO OPM_REG_OUT; + SET OPM_CY_OFFSET = 5; SWITCH ON OPM_CY_VOL: - ^hF: MOVE ^h30 TO OPM_DATA_OUT; - ^hE: MOVE ^h34 TO OPM_DATA_OUT; - ^hD: MOVE ^h38 TO OPM_DATA_OUT; - ^hC: MOVE ^h3C TO OPM_DATA_OUT; - ^hB: MOVE ^h40 TO OPM_DATA_OUT; - ^hA: MOVE ^h44 TO OPM_DATA_OUT; - ^h9: MOVE ^h48 TO OPM_DATA_OUT; - ^h8: MOVE ^h4C TO OPM_DATA_OUT; - ^h7: MOVE ^h50 TO OPM_DATA_OUT; - ^h6: MOVE ^h54 TO OPM_DATA_OUT; - ^h5: MOVE ^h58 TO OPM_DATA_OUT; - ^h4: MOVE ^h5C TO OPM_DATA_OUT; - ^h3: MOVE ^h60 TO OPM_DATA_OUT; - ^h2: MOVE ^h64 TO OPM_DATA_OUT; - ^h1: MOVE ^h68 TO OPM_DATA_OUT; + ^hF: MOVE (^h30 + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^hE: MOVE (^h34 + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^hD: MOVE (^h38 + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^hC: MOVE (^h3C + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^hB: MOVE (^h40 + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^hA: MOVE (^h44 + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^h9: MOVE (^h48 + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^h8: MOVE (^h4C + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^h7: MOVE (^h50 + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^h6: MOVE (^h54 + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^h5: MOVE (^h58 + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^h4: MOVE (^h5C + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^h3: MOVE (^h60 + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^h2: MOVE (^h64 + OPM_CY_OFFSET) TO OPM_DATA_OUT; + ^h1: MOVE (^h68 + OPM_CY_OFFSET) TO OPM_DATA_OUT; ^h0: MOVE ^hFF TO OPM_DATA_OUT; ENDSWITCH; - ADD 5 TO OPM_DATA_OUT; {--DEBUG CALL SUB_OPM_WRITE; MOVE OPM_CNTL_REG TO OPM_REG_OUT; @@ -2026,25 +2026,25 @@ BEGIN CALL SUB_OPM_WRITE; MOVE ^h7F TO OPM_REG_OUT; + SET OPM_SD_OFFSET = 5; SWITCH ON OPM_SD_VOL: - ^hF: MOVE ^h30 TO OPM_DATA_OUT; - ^hE: MOVE ^h34 TO OPM_DATA_OUT; - ^hD: MOVE ^h38 TO OPM_DATA_OUT; - ^hC: MOVE ^h3C TO OPM_DATA_OUT; - ^hB: MOVE ^h40 TO OPM_DATA_OUT; - ^hA: MOVE ^h44 TO OPM_DATA_OUT; - ^h9: MOVE ^h48 TO OPM_DATA_OUT; - ^h8: MOVE ^h4C TO OPM_DATA_OUT; - ^h7: MOVE ^h50 TO OPM_DATA_OUT; - ^h6: MOVE ^h54 TO OPM_DATA_OUT; - ^h5: MOVE ^h58 TO OPM_DATA_OUT; - ^h4: MOVE ^h5C TO OPM_DATA_OUT; - ^h3: MOVE ^h60 TO OPM_DATA_OUT; - ^h2: MOVE ^h64 TO OPM_DATA_OUT; - ^h1: MOVE ^h68 TO OPM_DATA_OUT; + ^hF: MOVE (^h30 + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^hE: MOVE (^h34 + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^hD: MOVE (^h38 + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^hC: MOVE (^h3C + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^hB: MOVE (^h40 + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^hA: MOVE (^h44 + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^h9: MOVE (^h48 + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^h8: MOVE (^h4C + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^h7: MOVE (^h50 + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^h6: MOVE (^h54 + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^h5: MOVE (^h58 + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^h4: MOVE (^h5C + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^h3: MOVE (^h60 + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^h2: MOVE (^h64 + OPM_SD_OFFSET) TO OPM_DATA_OUT; + ^h1: MOVE (^h68 + OPM_SD_OFFSET) TO OPM_DATA_OUT; ^h0: MOVE ^hFF TO OPM_DATA_OUT; ENDSWITCH; - ADD 5 TO OPM_DATA_OUT; {--DEBUG CALL SUB_OPM_WRITE; MOVE OPM_CNTL_REG TO OPM_REG_OUT; @@ -2063,25 +2063,25 @@ BEGIN CALL SUB_OPM_WRITE; MOVE ^h7F TO OPM_REG_OUT; + SET OPM_HH_OFFSET = 16; SWITCH ON OPM_HH_VOL: - ^hF: MOVE ^h30 TO OPM_DATA_OUT; - ^hE: MOVE ^h34 TO OPM_DATA_OUT; - ^hD: MOVE ^h38 TO OPM_DATA_OUT; - ^hC: MOVE ^h3C TO OPM_DATA_OUT; - ^hB: MOVE ^h40 TO OPM_DATA_OUT; - ^hA: MOVE ^h44 TO OPM_DATA_OUT; - ^h9: MOVE ^h48 TO OPM_DATA_OUT; - ^h8: MOVE ^h4C TO OPM_DATA_OUT; - ^h7: MOVE ^h50 TO OPM_DATA_OUT; - ^h6: MOVE ^h54 TO OPM_DATA_OUT; - ^h5: MOVE ^h58 TO OPM_DATA_OUT; - ^h4: MOVE ^h5C TO OPM_DATA_OUT; - ^h3: MOVE ^h60 TO OPM_DATA_OUT; - ^h2: MOVE ^h64 TO OPM_DATA_OUT; - ^h1: MOVE ^h68 TO OPM_DATA_OUT; + ^hF: MOVE (^h30 + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^hE: MOVE (^h34 + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^hD: MOVE (^h38 + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^hC: MOVE (^h3C + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^hB: MOVE (^h40 + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^hA: MOVE (^h44 + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^h9: MOVE (^h48 + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^h8: MOVE (^h4C + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^h7: MOVE (^h50 + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^h6: MOVE (^h54 + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^h5: MOVE (^h58 + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^h4: MOVE (^h5C + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^h3: MOVE (^h60 + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^h2: MOVE (^h64 + OPM_HH_OFFSET) TO OPM_DATA_OUT; + ^h1: MOVE (^h68 + OPM_HH_OFFSET) TO OPM_DATA_OUT; ^h0: MOVE ^hFF TO OPM_DATA_OUT; ENDSWITCH; - ADD 5 TO OPM_DATA_OUT; {--DEBUG CALL SUB_OPM_WRITE; MOVE OPM_CNTL_REG TO OPM_REG_OUT;