so we did some studying for a night and came up with this:
only ASM and C are usually used to program the gameboy. (and maby c++ with extra effort)
he knows c++ and I know Basic...
i tried looking for a basic interpreter/compiler for the gameboy and found 1. GB BASIC! it is a line oriented basic interpreter that runs on the gameboy!!!! cool, but not what we need.... (i will only use it for fun)
we are now learning C. and started on making a game!
AAAAAAAAAANNNNNNNYYYYYY WAAAAAAAAYYYYYY......................
i got the idea to write a simple BASIC to C translater!!!!!
****************************************
THIS REQUIRES THE GBDK (game boy development kit) C COMPILER IF YOU WANT TO COMPILE THE C CODE THAT IT OUTPUTS!
****************************************
here is the test version (works fine when tested):
sorry for the sloppy uncommented code... lol
Code: Select all
CLS
PRINT "GBE-BASIC,"
PRINT "THE EXTENDED TINY BASIC TO C TRANSLATOR FOR THE GAME BOY."
PRINT
PRINT "GEEK BASIC SOFTWARE"
PRINT
LINE INPUT "SOURCE *.BAS : "; source$
LINE INPUT "OUTPUT *.C : "; output$
OPEN source$ + ".BAS" FOR INPUT AS #1
OPEN output$ + ".C" FOR OUTPUT AS #2
PRINT #2, "#include <gb>"
PRINT #2, "#include <stdio>"
PRINT #2, "int main(){"
DO UNTIL EOF(1)
LINE INPUT #1, in$
LET in$ = LTRIM$(RTRIM$(in$))
IF LEFT$(in$, 3) = "REM" THEN
PRINT #2, "//" + MID$(in$, 4, LEN(in$) - 3)
END IF
IF LEFT$(in$, 4) = "DEF " THEN
PRINT #2, "int "; MID$(in$, 5, LEN(in$) - 4); ";"
END IF
IF LEFT$(in$, 6) = "PRINT " THEN
PRINT #2, "printf(" + MID$(in$, 7, LEN(in$) - 6) + ");"
END IF
IF LEFT$(in$, 6) = "INPUT " THEN
PRINT #2, MID$(in$, 7, LEN(in$) - 6) + "=joypad();"
END IF
IF LEFT$(in$, 4) = "LET " THEN
PRINT #2, MID$(in$, 5, LEN(in$) - 4) + ";"
END IF
IF LEFT$(in$, 3) = "IF " THEN
PRINT #2, "if ("; MID$(in$, 4, INSTR(in$, " THEN") - 4) + "){"
END IF
IF in$ = "ENDIF" THEN
PRINT #2, "}"
END IF
IF LEFT$(in$, 6) = "WHILE " THEN
PRINT #2, "while (" + MID$(in$, 7, LEN(in$) - 6) + "){"
END IF
IF in$ = "WEND" THEN
PRINT #2, "}"
END IF
IF in$ = "EXIT" THEN
PRINT #2, "break;"
END IF
IF in$ = "END" THEN
PRINT #2, "printf(" + CHR$(34) + "\n---END OF PROGRAM---" + CHR$(34) + ");"
PRINT #2, "while (1){}"
END IF
LOOP
PRINT #2, "}"
CLOSE #1
CLOSE #2
PRINT "DONE!"
SLEEP
END
Code: Select all
REM 99 BOTTLES OF BEER!!!
DEF beer
DEF k
LET beer=99
LET k=0
PRINT "PRESS START TO START...\n"
WHILE 1
INPUT k
IF k&J_START THEN
EXIT
ENDIF
WEND
WHILE beer>1
PRINT "%d",beer
PRINT " BOTTLES OF BEER ON THE WALL!\n"
PRINT "%d",beer
PRINT " BOTTLES OF BEER!\n"
PRINT "TAKE ONE DOWN AND PASS IT AROUND...\n"
LET beer=beer-1
WEND
PRINT "AWWW.... NO MORE BEER!"
END