From b229f387e346ab4ab3df1ed1ecb9aa128c4bb13e Mon Sep 17 00:00:00 2001 From: _NetNomad <43683711+TheNetNomad@users.noreply.github.com> Date: Tue, 16 Nov 2021 20:40:47 -0500 Subject: [PATCH] Update GFMASM.SRC Got rid of debug output. Added message at end with filesize of song --- GFMASM.SRC | 86 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 52 insertions(+), 34 deletions(-) diff --git a/GFMASM.SRC b/GFMASM.SRC index dac4174..cb3cc31 100644 --- a/GFMASM.SRC +++ b/GFMASM.SRC @@ -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; @@ -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; @@ -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; @@ -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; @@ -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; @@ -199,7 +212,7 @@ BEGIN MULTIPLY LASTCHAR BY 12; ADD LASTCHAR TO OUTCHAR; - WRITE OUTFILE; + CALL WRITEBYTE; CALL SUB_SKIP_LINE; EXIT; @@ -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; @@ -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; @@ -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; @@ -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; @@ -304,11 +317,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; CALL SUB_SKIP_LINE; EXIT; @@ -316,38 +329,38 @@ BEGIN 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; @@ -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; @@ -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;