Skip to content

Commit

Permalink
Update GEMINIFM.SRC
Browse files Browse the repository at this point in the history
OPM drum volume implemented, several terminal display changes
  • Loading branch information
TheNetNomad committed Nov 30, 2021
1 parent e837083 commit c77065a
Showing 1 changed file with 142 additions and 16 deletions.
158 changes: 142 additions & 16 deletions GEMINIFM.SRC
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,12 @@ BEGIN
SET OPM_OP2VOL_BASE = ^h68;
SET OPM_OP4VOL_BASE = ^h78;

BYTE OPM_BD_VOL;
BYTE OPM_SD_VOL;
BYTE OPM_HH_VOL;
BYTE OPM_TM_VOL;
BYTE OPM_CY_VOL;

POINTER TO BYTE OPM_INST_POINTER;


Expand Down Expand Up @@ -654,6 +660,10 @@ BEGIN
BYTE OPM4_INST;
BYTE OPM5_INST;

DISPLAY "GEMINI FM VERSION 0.5.1 BETA";
DISPLAY "CREATED BY _NETNOMAD";
DISPLAY "";

{----------------------------------------------------------}
{-- FIRST WE SEARCH FOR A YAMAHA SFG DEVICE IN ALL SLOTS --}
{----------------------------------------------------------}
Expand Down Expand Up @@ -758,7 +768,12 @@ BEGIN
FI;

{--CONVERT DETECT_SLOT TO STR_OUT;
DISPLAY FOUND_STRING," found in slot ",STR_OUT;
{--DISPLAY FOUND_STRING," found in slot ",STR_OUT;
IF OPM_NOT_FOUND THEN
DISPLAY "OPLL DEVICE FOUND IN SLOT ",STR_OUT;
ELSE
DISPLAY "OPM DEVICE FOUND IN SLOT ",STR_OUT;
FI;
IF FOUND_STRING = "PAC2OPLL" THEN
DISPLAY "ENABLING FM-PAC...";
MOVE DETECT_SLOT TO OPLLSLOT;
Expand Down Expand Up @@ -1051,6 +1066,7 @@ BEGIN
{-- THE STACK EXISTS IN THE USER AREA SO LET'S GIVE IT 500 BYTES TO BE SAFE
SUBTRACT ^h500 FROM TPA_END GIVING USER_AREA_END;

DISPLAY "";
DISPLAY "LOADING PERFORMANCE DATA..."
OPEN INFILE;
DO
Expand Down Expand Up @@ -1086,14 +1102,15 @@ BEGIN
GOTO TERMINATE;
FI;

DISPLAY "DATA START ADDRESS:";
{--DISPLAY "DATA START ADDRESS:";
CONVERT GEMINI_COMMAND_POINTER TO HEX STR_OUT;
DISPLAY STR_OUT;
DISPLAY "DATA END ADDRESS:";
DISPLAY "DATA START ADDRESS: ",STR_OUT;
{--DISPLAY "DATA END ADDRESS:";
CONVERT SONG_LOAD_POINTER TO HEX STR_OUT;
DISPLAY STR_OUT;
DISPLAY "DATA END ADDRESS: ",STR_OUT;
MOVE 1 TO GEMINI_NOT_PAUSED;

DISPLAY "";
DISPLAY "PLAYING...";
DISPLAY " ";
MAIN:
Expand Down Expand Up @@ -1497,20 +1514,65 @@ BEGIN
IF GEMINI_COMMAND_BYTECODE = ^h16 THEN
AND GEMINI_COMMAND_DATA WITH ^b00010000 GIVING OPM_DATA_OUT;
IF OPM_DATA_OUT = ^b00010000 THEN
MOVE ^h1E TO OPM_REG_OUT;
MOVE ^h0E TO OPM_DATA_OUT;
MOVE ^h2E TO OPM_REG_OUT;
MOVE ^h07 TO OPM_DATA_OUT;
CALL SUB_OPM_WRITE;

MOVE ^h66 TO OPM_REG_OUT;
SWITCH ON OPM_BD_VOL:
^hF: MOVE 20 TO OPM_DATA_OUT;
^hE: MOVE 27 TO OPM_DATA_OUT;
^hD: MOVE 34 TO OPM_DATA_OUT;
^hC: MOVE 41 TO OPM_DATA_OUT;
^hB: MOVE 48 TO OPM_DATA_OUT;
^hA: MOVE 55 TO OPM_DATA_OUT;
^h9: MOVE 62 TO OPM_DATA_OUT;
^h8: MOVE 69 TO OPM_DATA_OUT;
^h7: MOVE 76 TO OPM_DATA_OUT;
^h6: MOVE 83 TO OPM_DATA_OUT;
^h5: MOVE 90 TO OPM_DATA_OUT;
^h4: MOVE 97 TO OPM_DATA_OUT;
^h3: MOVE 104 TO OPM_DATA_OUT;
^h2: MOVE 111 TO OPM_DATA_OUT;
^h1: MOVE 118 TO OPM_DATA_OUT;
^h0: MOVE 127 TO OPM_DATA_OUT;
ENDSWITCH;
CALL SUB_OPM_WRITE;

MOVE OPM_CNTL_REG TO OPM_REG_OUT;
MOVE ^b01111110 TO OPM_DATA_OUT;
CALL SUB_OPM_WRITE;
ELSE
AND GEMINI_COMMAND_DATA WITH ^b00000100 GIVING OPM_DATA_OUT;
IF OPM_DATA_OUT = ^b00010000 THEN
MOVE ^h1E TO OPM_REG_OUT;
MOVE ^h2E TO OPM_DATA_OUT;
IF OPM_DATA_OUT = ^b00000100 THEN
MOVE ^h2E TO OPM_REG_OUT;
MOVE ^h20 TO OPM_DATA_OUT;
CALL SUB_OPM_WRITE;

MOVE ^h66 TO OPM_REG_OUT;
SWITCH ON OPM_TM_VOL:
^hF: MOVE 20 TO OPM_DATA_OUT;
^hE: MOVE 27 TO OPM_DATA_OUT;
^hD: MOVE 34 TO OPM_DATA_OUT;
^hC: MOVE 41 TO OPM_DATA_OUT;
^hB: MOVE 48 TO OPM_DATA_OUT;
^hA: MOVE 55 TO OPM_DATA_OUT;
^h9: MOVE 62 TO OPM_DATA_OUT;
^h8: MOVE 69 TO OPM_DATA_OUT;
^h7: MOVE 76 TO OPM_DATA_OUT;
^h6: MOVE 83 TO OPM_DATA_OUT;
^h5: MOVE 90 TO OPM_DATA_OUT;
^h4: MOVE 97 TO OPM_DATA_OUT;
^h3: MOVE 104 TO OPM_DATA_OUT;
^h2: MOVE 111 TO OPM_DATA_OUT;
^h1: MOVE 118 TO OPM_DATA_OUT;
^h0: MOVE 127 TO OPM_DATA_OUT;
ENDSWITCH;
CALL SUB_OPM_WRITE;




MOVE OPM_CNTL_REG TO OPM_REG_OUT;
MOVE ^b01111110 TO OPM_DATA_OUT;
CALL SUB_OPM_WRITE;
Expand All @@ -1528,6 +1590,27 @@ BEGIN
MOVE ^h12 TO OPM_DATA_OUT;
CALL SUB_OPM_WRITE;

MOVE ^h7F TO OPM_REG_OUT;
SWITCH ON OPM_CY_VOL:
^hF: MOVE 20 TO OPM_DATA_OUT;
^hE: MOVE 27 TO OPM_DATA_OUT;
^hD: MOVE 34 TO OPM_DATA_OUT;
^hC: MOVE 41 TO OPM_DATA_OUT;
^hB: MOVE 48 TO OPM_DATA_OUT;
^hA: MOVE 55 TO OPM_DATA_OUT;
^h9: MOVE 62 TO OPM_DATA_OUT;
^h8: MOVE 69 TO OPM_DATA_OUT;
^h7: MOVE 76 TO OPM_DATA_OUT;
^h6: MOVE 83 TO OPM_DATA_OUT;
^h5: MOVE 90 TO OPM_DATA_OUT;
^h4: MOVE 97 TO OPM_DATA_OUT;
^h3: MOVE 104 TO OPM_DATA_OUT;
^h2: MOVE 111 TO OPM_DATA_OUT;
^h1: MOVE 118 TO OPM_DATA_OUT;
^h0: MOVE 127 TO OPM_DATA_OUT;
ENDSWITCH;
CALL SUB_OPM_WRITE;

MOVE OPM_CNTL_REG TO OPM_REG_OUT;
MOVE ^b01111111 TO OPM_DATA_OUT;
CALL SUB_OPM_WRITE;
Expand All @@ -1544,6 +1627,27 @@ BEGIN
MOVE ^h15 TO OPM_DATA_OUT;
CALL SUB_OPM_WRITE;

MOVE ^h7F TO OPM_REG_OUT;
SWITCH ON OPM_SD_VOL:
^hF: MOVE 20 TO OPM_DATA_OUT;
^hE: MOVE 27 TO OPM_DATA_OUT;
^hD: MOVE 34 TO OPM_DATA_OUT;
^hC: MOVE 41 TO OPM_DATA_OUT;
^hB: MOVE 48 TO OPM_DATA_OUT;
^hA: MOVE 55 TO OPM_DATA_OUT;
^h9: MOVE 62 TO OPM_DATA_OUT;
^h8: MOVE 69 TO OPM_DATA_OUT;
^h7: MOVE 76 TO OPM_DATA_OUT;
^h6: MOVE 83 TO OPM_DATA_OUT;
^h5: MOVE 90 TO OPM_DATA_OUT;
^h4: MOVE 97 TO OPM_DATA_OUT;
^h3: MOVE 104 TO OPM_DATA_OUT;
^h2: MOVE 111 TO OPM_DATA_OUT;
^h1: MOVE 118 TO OPM_DATA_OUT;
^h0: MOVE 127 TO OPM_DATA_OUT;
ENDSWITCH;
CALL SUB_OPM_WRITE;

MOVE OPM_CNTL_REG TO OPM_REG_OUT;
MOVE ^b01111111 TO OPM_DATA_OUT;
CALL SUB_OPM_WRITE;
Expand All @@ -1559,16 +1663,34 @@ BEGIN
MOVE ^h17 TO OPM_DATA_OUT;
CALL SUB_OPM_WRITE;

MOVE ^h7F TO OPM_REG_OUT;
SWITCH ON OPM_HH_VOL:
^hF: MOVE 20 TO OPM_DATA_OUT;
^hE: MOVE 27 TO OPM_DATA_OUT;
^hD: MOVE 34 TO OPM_DATA_OUT;
^hC: MOVE 41 TO OPM_DATA_OUT;
^hB: MOVE 48 TO OPM_DATA_OUT;
^hA: MOVE 55 TO OPM_DATA_OUT;
^h9: MOVE 62 TO OPM_DATA_OUT;
^h8: MOVE 69 TO OPM_DATA_OUT;
^h7: MOVE 76 TO OPM_DATA_OUT;
^h6: MOVE 83 TO OPM_DATA_OUT;
^h5: MOVE 90 TO OPM_DATA_OUT;
^h4: MOVE 97 TO OPM_DATA_OUT;
^h3: MOVE 104 TO OPM_DATA_OUT;
^h2: MOVE 111 TO OPM_DATA_OUT;
^h1: MOVE 118 TO OPM_DATA_OUT;
^h0: MOVE 127 TO OPM_DATA_OUT;
ENDSWITCH;
CALL SUB_OPM_WRITE;

MOVE OPM_CNTL_REG TO OPM_REG_OUT;
MOVE ^b01111111 TO OPM_DATA_OUT;
CALL SUB_OPM_WRITE;

FI;
FI;
FI;



EXIT;
FI;

Expand Down Expand Up @@ -1641,9 +1763,14 @@ BEGIN
EXIT;

SUB_OPM_SET_VOLUME:
{-- TODO OPM DRUMS
IF GEMINI_COMMAND_BYTECODE > ^h35 THEN
CALL SUB_OPLL_SET_VOLUME;
SWITCH ON GEMINI_COMMAND_BYTECODE:
^h36: MOVE GEMINI_COMMAND_DATA TO OPM_BD_VOL;
^h37: MOVE GEMINI_COMMAND_DATA TO OPM_HH_VOL;
^h38: MOVE GEMINI_COMMAND_DATA TO OPM_SD_VOL;
^h39: MOVE GEMINI_COMMAND_DATA TO OPM_TM_VOL;
^h3A: MOVE GEMINI_COMMAND_DATA TO OPM_CY_VOL;
ENDSWITCH;
EXIT;
FI;

Expand All @@ -1668,7 +1795,6 @@ BEGIN
^h2: MOVE 111 TO OPM_DATA_OUT;
^h1: MOVE 118 TO OPM_DATA_OUT;
^h0: MOVE 127 TO OPM_DATA_OUT;

ENDSWITCH;

{-- TODO RETURN TO THIS ONCE ALTERNATE VOICES ARE IMPLEMENTED
Expand Down

0 comments on commit c77065a

Please sign in to comment.