Mlc -- Multi-platform Language For Calcs
#1
Posted 03 January 2005 - 04:46 PM
Presenting MLC:
MLC is a project developed by Epic Programming Studios (EPS), it is the first (sucsessful) program of its kind. MLC is a multi-platform interperator for a new language specifically made for calculator games, it is designed to compleatly replace BASIC as the language of choice for creating games on calculators (use BASIC for math, thats what its there for )
MLC is far faster than basic, and can use 4 levels of grayscale (thanks to Orwell's gxlib), it also features (or will feature) all the tools you could want to make a game
Another thing i know every basic programmer has been itching for: String and file support, is supported in MLC
here are some pictures of MLC games, from new to old, showing the progression of the language:
for a compleat list of pics go here
MLC is interperated like BASIC, but we've cut out alot of the unneed things in BASIC to speed things up, also MLC code is "complied" before each run, making it run much faster. speed has been our concern in every part of this, so you shouldnt have any complaints
another of our goals is to preserve Basic's only redeaming feature and put it into MLC: on calc programability. the on calc BASIC editor is all you need to program in MLC, though a sprite editor is nice (in beta for AFX and PC). so all MLC program are open source and you can program and view them without special tools.
Im not going to say that MLC is as easy as basic... its much harder, but still not as hard as ASM/C. the reason its hard is because you can do so much more with it
anyway, by now i figgure some of you are looking for a link to a download, and are willing to choke it out of me, so here it is:
EPS Main Page
Direct MLC Download
MLC Readme
take a look at the game's we've provided, and use them to grasp the Basic sentax. a tutorial is in the works, but if you have questions feel free to ask (i may even quote you in the tutorial )
#2
Posted 03 January 2005 - 05:02 PM
#3
Posted 03 January 2005 - 05:09 PM
So download it and use it
#4
Posted 03 January 2005 - 05:52 PM
But there is one thing to moan about:
Well you cannot say that a piece of software is "open" when it must be interpreted by a software which source code isn't distributed. It is the same as with the Java Trap.MLC program are open source and you can program and view them without special tools
And in my opinion such project should be open source.
Anyway good work, it may be a real breakthrough for both calculator brands.
Roeoender.
#5
Posted 03 January 2005 - 06:02 PM
also, i may have forgot to mention, MLC also runs on the Ti-86, and soon the ti89 and 83.
#6
Posted 03 January 2005 - 06:16 PM
Making this language uniform between calc brands is really fantastic idea and having working implementations for afx and ti86 will surely quickly catch attention of many basic programmers .
#7
Posted 03 January 2005 - 06:17 PM
Just a small thing: how did you do the screenshots? Because there are only 3 colors on it... It's a pity that wing100 isn't able to show the 5 colors of gxlib
#8
Posted 03 January 2005 - 06:24 PM
@roe: huhn is already planning to use MLC in <{GNULINUX}>, and andy just asked me about doing somthing, so i think your right on that . MLCafx will soon be able to accept parameters, so you will be able to link MLC games to the main menu and run it from other C/ASM progs, but we still need to write down the specific rules of how you may use this... we'll figure it out
#9
Posted 03 January 2005 - 06:32 PM
#10
Posted 03 January 2005 - 06:34 PM
#11
Posted 03 January 2005 - 07:18 PM
btw, looks like graphics have improved alot since i used it a while ago
#12
Posted 03 January 2005 - 07:22 PM
its archaic
#13
Posted 03 January 2005 - 09:57 PM
#14
Posted 03 January 2005 - 10:17 PM
#15
Posted 03 January 2005 - 10:48 PM
#16
Posted 03 January 2005 - 11:01 PM
everybody bug SoftCalc about it and mabeyIs it going to be usable on the classpad?
(aka, were looking in to it )
#18
Posted 04 January 2005 - 03:27 AM
#19
Posted 04 January 2005 - 07:04 AM
Anyway, a very excellent and successful idea, will make programming and sharing games a lot better, not to mention that gives another use for the AFX since I don't use after finishing college.
#20
Posted 04 January 2005 - 08:29 AM
anyway, ive just uploaded the beta for my newest game, i finished the engine compleatly but there are only two levels right now (feel free to add some ). if you notice any bugs let me know
controls:
Shift' />: rotate paddle
CTRL' />: speed up paddle
[dir keys]: move
object: get the ball in the goal... sounds simple doesnt it?
(remember that you can move away from the bottem of the screen)
link: http://dysfunction.e.../afx/BOUNCE.zip
EDIT:
btw, can one of our french speaking members post this on graph100.com and the FCC? also mabey the same for the DCF? |
#21
Posted 04 January 2005 - 10:44 AM
notice
#22
Posted 04 January 2005 - 11:08 AM
#23
Posted 04 January 2005 - 11:34 AM
#24
Posted 04 January 2005 - 11:56 AM
#25
Posted 04 January 2005 - 12:47 PM
I think this will become VERY popular amongst basic coders, cause it also provides on calc programmability, but thereby eliminates all constrains the built in basic has (it's faster, you have string support, greyscales, built-in subroutines, your own data management, ..., and much more things you can do with).
It's really great
I regret that my basic years are over (though MLC is lots harder than Casio Basic, I think not all basic coders will use it)
I'm no french speaking member, but I'll post it in the DCF neverthelessbtw, can one of our french speaking members post this on graph100.com and the FCC? also mabey the same for the DCF
Btw some questions:
1. Does MLC have timing functions, too? (else MLC programs probably will run on Casio / TI at different speeds, the same for different interpreter versions)
2. MLC progs are stored in basic files; can you also split them into more than one? (I know this by own expoerience: making big basic files with the calc's program editor sucks a lot. So I splitted my basic programs into subfiles (my record was about 40 for my biggest basic program) and packed them all into one after development).
Or could you also make a new program editor with better features? Maybe an MLC IDE
#26
Posted 04 January 2005 - 02:31 PM
The speed is similar, but we will probably have to synchronize it in 100% . But now MLC games works fine on AFX and TI 861. Does MLC have timing functions, too? (else MLC programs probably will run on Casio / TI at different speeds, the same for different interpreter versions)
I don't like to have a few BASIC files for one game it can only make mess, so I'm not going to add option to link a few MLC files together.2. MLC progs are stored in basic files; can you also split them into more than one?
BTW. You can use Search tool in the editor and find a function which you want to edit - it's not a problem
#27
Posted 04 January 2005 - 02:41 PM
1) Al (the guy who is preparing documentation for HP-GCC C compiler for HP) will probably port my C code of MLCafx to HP.
I guess I'll have to add more comments then
2) Burnt (the guy who made MLC for TI86) is porting his z80 code to TI-83(+). It's almost finished. MLC for TI-83(+) needs only a shell to choose a MLC file.
#28
Posted 04 January 2005 - 02:57 PM
(though MLC is lots harder than Casio Basic, I think not all basic coders will use it)
It's not true, i'd even say it's much easier than basic. I had no problems adapting to MLC (see lander and pong2 ) after a long use of basic. Not to say that syntax was changing and developing as i was learning. And considering all the advantages of MLC, it's no big deal to spend some time getting used to it.
LONG LIVE MLC!
#29
Posted 04 January 2005 - 06:00 PM
After playing a while, when I tried GComm and another competition game I found the text corrupt and strange looking.
Then I realized that the game & GComm both use the Font.rfi, so I re-installed the font and it worked.
Does this have to do anything with memzones or shared memory?
#30
Posted 04 January 2005 - 06:51 PM
So it shouldn't cause any change in other sectors etc. but do tell if something will be wrong once more
#31
Posted 04 January 2005 - 06:55 PM
oh, i didnt realize that this was the program to go on the calc, not the program that runs the programs on the PC maybe i should read more closly next time@Bob Vila: As long as AFX has operating system which is in 100% compatible with MS-DOS all C/ASM stuff won't have <{GNULINUX}> source
#32
Posted 04 January 2005 - 08:44 PM
#33
Posted 04 January 2005 - 09:49 PM
You really did a great job Crimson and all of the MLC staff
I think this will become VERY popular amongst basic coders, cause it also provides on calc programmability, but thereby eliminates all constrains the built in basic has (it's faster, you have string support, greyscales, built-in subroutines, your own data management, ..., and much more things you can do with).
It's really great
I regret that my basic years are over (though MLC is lots harder than Casio Basic, I think not all basic coders will use it)
I'm no french speaking member, but I'll post it in the DCF nevertheless
Btw some questions:
1. Does MLC have timing functions, too? (else MLC programs probably will run on Casio / TI at different speeds, the same for different interpreter versions)
2. MLC progs are stored in basic files; can you also split them into more than one? (I know this by own expoerience: making big basic files with the calc's program editor sucks a lot. So I splitted my basic programs into subfiles (my record was about 40 for my biggest basic program) and packed them all into one after development).
Or could you also make a new program editor with better features? Maybe an MLC IDE
first, i cant take real credit, ive been asking someone to do something like this for years, but its nic's project, if he weren't here there would be no MLC... so thank him
2) i actually want this... we'll sort it out later
as for an editor, huhn will be making that as a part of <{GNULINUX}>, so you'll be able to use <{GNULINUX}> as an editor for MLC if you should want to.
#34
Posted 05 January 2005 - 12:15 AM
I can't wait to see MLC and all the programs that already exists in the File Sharing
FONT.RFI problem Mohamed encountered could happen if MLC (or another program) writes outside a memzone damaging the font.rfi one... (I've noticed similar problems after running some of the competition programs)
@4nic8: Do you always use the function write_mem_zone() to write in your memzones?
#35
Posted 05 January 2005 - 12:29 AM
create_mem_zone(1,TEMP_FILE,fp_c.b_size,CREATE_ZONE); if (search_mem_zone(1,TEMP_FILE,&fp_t)==-1) error_msg("Out of RAM memory","",0); /* pointer to the tokenized code */ code = (unsigned char far *) MK_FP(fp_t.b_segment,fp_t.b_offset+21); code_size=(uint)fp_c.b_size; search_mem_zone(1,name,&fp_c); /* pointer to the source code */ source = (unsigned char far *) MK_FP(fp_c.b_segment,fp_c.b_offset+21); if (search_mem_zone(1,sv_name,&fp_sv)==-1) error_msg("Out of RAM memory","",0); change_password(&fp_sv,"mlcsave"); /* pointer to the save file code */ mlc_save = (unsigned char far *) MK_FP(fp_sv.b_segment,fp_sv.b_offset+21);
#36
Posted 05 January 2005 - 01:06 AM
fp_t.b_offset+21
you shouldn't do that, you should use fp_t.b_inner_offset which point at the first real byte of the content because if ever you decide to use a different zone type your prog will have troubles.
Then each time you write to a zone using a far pointer you should check if you are not writting outside it.
VERY IMPORTANT: Remember that each time you create a new zone YOU MUST re-search ALL the memzones you are using that are located after the one you created because the memory have changed...
Note that Memzone lib 2.0 is almost ready (I just have to create and run tests -boring- ). It changes completely the way we handle memzones: you handle them as files using functions like mopen, mwrites, mseek etc... and if you write after the end of a memzone, it behaves like a normal filesystem and will increase the size of the zone
#37
Posted 05 January 2005 - 01:14 AM
I was very careful with itVERY IMPORTANT: Remember that each time you create a new zone YOU MUST re-search ALL the memzones that are after the one you created because the memory have changed...
btw. I'll check and change a few things to be in 1000% sure that everything is fine and I'll release MLCafx version 1.01
#38
Posted 07 January 2005 - 02:08 PM
It should be easy to create a compiler (or rather translator) that would work on PC and generate C source code from MLC program. This way program could run even faster after compiling.
IMHO running speed shouldn't be adjusted to the slowest calcs, Maybe add an instruction that would turn on/off timing compatibility.
Well designing a new language requires lots of thinking not programming
Roeoender.
#39
Posted 07 January 2005 - 03:25 PM
#40
Posted 07 January 2005 - 03:27 PM
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users