Skip to content

Commit

Permalink
Update GFMASM.SRC
Browse files Browse the repository at this point in the history
Got rid of debug output. Added message at end with filesize of song
  • Loading branch information
TheNetNomad committed Nov 17, 2021
1 parent 6eb299c commit b229f38
Showing 1 changed file with 52 additions and 34 deletions.
86 changes: 52 additions & 34 deletions GFMASM.SRC
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ BEGIN
STRING DEBUG_STR 5;
POINTER TO BYTE DEBUG_POINTER VALUE #DEBUG_STR;

STRING LENGTHSTR 20 VALUE "LENGTH:"

BYTE INCHAR;
STRING INBUFFER 512;
FILE INFILE DISK FILE1 TEXT RECORD INCHAR BUFFER INBUFFER;
Expand All @@ -48,13 +50,18 @@ BEGIN
STRING OUTBUFFER 512;
FILE OUTFILE DISK TEXT RECORD OUTCHAR BUFFER OUTBUFFER VALUE "SONG.BIN";

WORD OUTLENGTH VALUE 0;

BYTE LASTCHAR;

OPEN INFILE INPUT;
OPEN OUTFILE OUTPUT;

DISPLAY "ASSEMBLING SONG.BIN...";

READ INFILE;
WHILE INCHAR <> ^h1A DO
DISPLAY "PARSING CHARACTER"
{--DISPLAY "PARSING CHARACTER"
SWITCH ON INCHAR:
ASCII_D: CALL SUB_PARSE_DETUNE;
ASCII_E: CALL SUB_PARSE_END;
Expand All @@ -72,35 +79,41 @@ BEGIN
CLOSE INFILE;
CLOSE OUTFILE;
DISPLAY "WARNING: NO END COMMAND SPECIFIED";
DISPLAY "COMPILE SUCCESS";
GOTO FINISH;

GOTO END;

SUB_PARSE_END:
MOVE ^h0F TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

MOVE ^hFF TO OUTCHAR;
WRITE OUTFILE;

CALL WRITEBYTE;
FINISH:
CLOSE INFILE;
CLOSE OUTFILE;
DISPLAY "COMPILE SUCCESS";
DISPLAY "ASSEMBLY SUCCESS";
CONVERT OUTLENGTH TO HEX DEBUG_STR;
APPEND DEBUG_STR TO LENGTHSTR;
APPEND " BYTES" TO LENGTHSTR;
DISPLAY LENGTHSTR;

GOTO END;
EXIT;

SUB_PARSE_DETUNE:
DISPLAY "PARSING DETUNE";
{--DISPLAY "PARSING DETUNE";
MOVE ^h40 TO OUTCHAR;

CALL SUB_SKIP_WORD;

CALL SUB_PARSE_NIBBLE;
ADD LASTCHAR TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_PARSE_BYTE;
MOVE LASTCHAR TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

EXIT;

Expand All @@ -112,11 +125,11 @@ BEGIN

CALL SUB_PARSE_NIBBLE;
ADD LASTCHAR TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_PARSE_NIBBLE;
MOVE LASTCHAR TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

EXIT;

Expand All @@ -134,7 +147,7 @@ BEGIN
{-- TODO drum processing here
ELSE
ADD LASTCHAR TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

WHILE INCHAR <> ^h0A DO
MOVE INCHAR TO @DEBUG_POINTER;
Expand Down Expand Up @@ -199,7 +212,7 @@ BEGIN

MULTIPLY LASTCHAR BY 12;
ADD LASTCHAR TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_SKIP_LINE;
EXIT;
Expand All @@ -212,13 +225,13 @@ BEGIN
IF INCHAR = ASCII_F THEN
{--DISPLAY "PARSING KEY OFF";
MOVE ^h02 TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_SKIP_WORD;

CALL SUB_PARSE_NIBBLE;
MOVE LASTCHAR TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;
EXIT;
FI;

Expand All @@ -231,21 +244,21 @@ BEGIN
SUB_PARSE_LOOP:
{--DISPLAY "PARSING LOOP";
MOVE ^h04 TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_SKIP_WORD;

WHILE INCHAR <> ^h0A DO
IF INCHAR = ASCII_S THEN
MOVE ^h00 TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;
CALL SUB_SKIP_LINE;
EXIT;
FI;

IF INCHAR = ASCII_N THEN
MOVE ^h01 TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;
CALL SUB_SKIP_LINE;
EXIT;
FI;
Expand All @@ -258,21 +271,21 @@ BEGIN
SUB_PARSE_REPEAT:
{--DISPLAY "PARSING REPEAT";
MOVE ^h04 TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_SKIP_WORD;

WHILE INCHAR <> ^h0A DO
IF INCHAR = ASCII_S THEN
MOVE ^h02 TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;
CALL SUB_SKIP_LINE;
EXIT;
FI;

IF INCHAR = ASCII_N THEN
MOVE ^h03 TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;
CALL SUB_SKIP_LINE;
EXIT;
FI;
Expand All @@ -285,13 +298,13 @@ BEGIN
SUB_PARSE_TEMPO:
{--DISPLAY "PARSING TEMPO";
MOVE ^h01 TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_SKIP_WORD;

CALL SUB_PARSE_BYTE;
MOVE LASTCHAR TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_SKIP_LINE;
EXIT;
Expand All @@ -304,50 +317,50 @@ BEGIN

CALL SUB_PARSE_NIBBLE;
ADD LASTCHAR TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_PARSE_NIBBLE;
MOVE LASTCHAR TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_SKIP_LINE;
EXIT;

SUB_PARSE_WAIT:
{--DISPLAY "PARSING WAIT";
MOVE ^h03 TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_SKIP_WORD;

CALL SUB_PARSE_BYTE;
MOVE LASTCHAR TO OUTCHAR;
WRITE OUTFILE;
CALL WRITEBYTE;

CALL SUB_SKIP_LINE;
EXIT;

SUB_SKIP_LINE:
DISPLAY "SKIPPING TO END OF LINE";
{--DISPLAY "SKIPPING TO END OF LINE";
WHILE INCHAR <> ^h0A DO
READ INFILE;
OD;
EXIT;

SUB_SKIP_WORD:
DISPLAY "SKIPPING TO NEXT WORD";
{--DISPLAY "SKIPPING TO NEXT WORD";
WHILE INCHAR <> ^h20 DO
READ INFILE;
OD;
EXIT;

SUB_PARSE_BYTE:
DISPLAY "PARSING BYTE";
{--DISPLAY "PARSING BYTE";
CALL SUB_PARSE_NIBBLE;
READ INFILE;

MOVE INCHAR TO @DEBUG_POINTER;
DISPLAY DEBUG_STR;
{--DISPLAY DEBUG_STR;

SWITCH ON INCHAR:
ASCII_0: MOVE ^h00 TO INCHAR;
Expand All @@ -373,14 +386,14 @@ BEGIN
EXIT;

SUB_PARSE_NIBBLE:
DISPLAY "PARSING NIBBLE";
{--DISPLAY "PARSING NIBBLE";


MOVE ^h10 TO LASTCHAR;
READ INFILE;
WHILE INCHAR <> ^h0A DO
MOVE INCHAR TO @DEBUG_POINTER;
DISPLAY DEBUG_STR;
{--DISPLAY DEBUG_STR;

SWITCH ON INCHAR:
ASCII_0: MOVE ^h00 TO LASTCHAR;
Expand Down Expand Up @@ -410,8 +423,13 @@ BEGIN
GOTO QUIT;
EXIT;

WRITEBYTE:
WRITE OUTFILE;
ADD 1 TO OUTLENGTH;
EXIT;

QUIT:
CLOSE INFILE;
CLOSE OUTFILE REMOVE;
DISPLAY "COMPILE FAILED";
DISPLAY "ASSEMBLY FAILED";
END;

0 comments on commit b229f38

Please sign in to comment.