MADos by g3gg0
This is an development environment for creating your own demos or even games and applications for 3310/3330/3350/3410 phones, like Krisha and I made. Therein is everything u need to compile your own flash... (compiler, editor, tools) the code is plain C. Example code is included!
You CAN inject this code into nokia firmware with this package...
Here's a ChangeLog
3310 | works |
3330 | works |
3350 | not tested yet, but should work except LCD (not 84x48) |
3410 | not tested yet |
8210 | works |
[name] | [m'tainer] | [state] | [comment] |
Hardware Routines: | |||
LCD | g3gg0 | Yes | |
Keypad | krisha | Yes | even buffering at int level |
LED's | g3gg0 | Yes | - |
CCONT | g3gg0 | Yes | works, but cannot change to _io[] mode ;( |
DSP | M457 | Yes | upload code etc int triggering (not tested) |
MDI | M457 | Partial | some code, but could not test yet due lack of DSP knowledge |
Vibra | krisha | Yes | - |
Buzzer | krisha | Yes | even with wav playback ;) |
Interrupts | g3gg0 | Yes | INT-handler is extendable with int_irq_set_handler() etc |
Flash-IC | g3gg0 | Yes | ident, erase and program flash blocks |
Timer | g3gg0 | Yes | timer-int as source for internal time variable |
Xbus/FlashDebug | wumpus | Yes | only ME->PC data transfer yet |
MBus | wumpus | Yes | 2-way, but doesnt work yet with INT-disabling in other thread |
Graphic Routines: | |||
rect/line/pixel draw | krisha | Yes | - |
fill screen w/ pattern | g3gg0 | Yes | - |
clear screen | g3gg0 | Yes | - |
bitmap drawing | g3gg0 | Yes | - |
text drawing | g3gg0 | Yes | fixed and variable font, different fonts |
dialog box | krisha | Yes | number or text, scrolling in alpha state |
menu routines | chief359 | Yes | very comfortable, with callbacks |
animations | chief359 | Yes | extra thread that handles animations, optimisations needed |
thread-safeness | chief359 | Yes | extra thread updating screen every 40ms (should: IPC ?) |
Scheduler Routines: | |||
add thread | g3gg0 | Yes | specifying mode (sleep or running) |
place thread asleep | g3gg0 | Yes | - |
wakeup a thread | g3gg0 | Yes | - |
wakeup thread at spec. time | g3gg0 | Yes | - |
set thread as master | g3gg0 | Yes | thread runs as single thread (other threads locked) |
stability | g3gg0 | good | seems to work well :) |
IPC Routines: | |||
add message | g3gg0 | Yes | - |
check for message | g3gg0 | Yes | - |
get message | g3gg0 | Yes | - |
Library Routines: | |||
random | g3gg0 | Yes | uses lib_get_time |
time | g3gg0 | Yes | 1/1000 seconds since phone startup |
malloc/free | chief359 | Yes | works good :) |
sleep | g3gg0 | Yes | uses scheduler to sleep if possible |
memset/memcpy/memmove | g3gg0 | Yes | size of memmove restricted, M457 will optimize it for ASM |
[name] | [state] | [comment] |
Othello | Done | by Dr.Hackstable |
Hangman | Done | by krisha |
Snake | Done | by krisha |
Stars | Done | by krisha |
Tetris | Done | by chief359 |
Fire | Done | by g3gg0 |
AD-converter display | Done | |
Charging | Done | should work okay |
Oscilloscope | Done | uses charger input as src |
Unlockers | Done | various unlocker calcs and codes |
This is the cygwin environment needed for MADos
please use CVS (described below) do get the latest sources...
You should see the bash shell...
Try to run 'mc' a norton commander clone..
With this tool you can edit your C code with syntax hilghlighting if u want to decompress it to C:\
You have to run the cygwin_c.reg AND edit the .bat to fit the paths.
If you cannot manage the installation, then you are probably not the right one for this development environment, sorry....
If you have some problems with cygwin, please contact a friend who knows a little about linux.. he will know how to help!
My mailbox is surely not the right place to ask about things like that!
If you dont know what CVS is: get WinCVS (for win), MAcCVS (for mac) or gCVS (for linux) from http://www.wincvs.org
It is a version management system, used by millions of developers; with CVS u can share your code with other people spread all over the world..
First you check out a "module" (e.g. MADos is a module) from a "repository" (the server) then u can change what u like... after you changed something, you can "commit" these changes to the "repository".
CVS will check WHAT you've changed and commmit these changes.. so if user A changes the second line in a file and user B changes the 10th line and both commit their changes, CVS will first replace the second line and then changes the 10th line.. conflicts can occur, but they are rather seldom...
If you want to bring your code to the latest version, you just need to select "update" (with -d to also add new directories) - it will keep the changes u made and merge it with the changes the other developers made... so a update is normally safe...
To get more information read the HOWTOs about CVS...
Connection information:
Authentication | pserver |
Path | /root |
Host addr | g3gg0.de |
Username | public |
Password | behave! |
Module | nokia/MADos |
Note that you just have READ ACCESS... So u cannot "commit" the changes you made. if you made some changes and want these to appear in the CVS, do a CVS "update" and then zip and mail the files to MADos@g3gg0.dyndns.org - i will do it for you...
Last updated: 2005-02-21 14:19
This site is the result of a great deal of assembly code reading, research, countless (mostly futile) searches for data sheets, cross-referencing and analysing. If you use this information in any way please mention wumpus <blacksphere@goliath.darktech.org> (and others in the credits section) in the credits of your program/document. And tell me :) If you have more information please contribute. If you just copy this, stick your name on it and call it yours I hope you get your genitals bitten off by a three headed monkey. Have a nice day.
No mobile phones were harmed in the production of this site.