• 大小: 879KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: 其他
  • 标签: 源码  工具  

资源简介

GVmaker1.0模拟器J2ME版的Netbeans工程文件 博文链接:https://eastsun.iteye.com/blog/226840

资源截图

代码片段和文件信息

package eastsun.jgvm.module;

import eastsun.jgvm.module.io.*;
import eastsun.jgvm.module.event.Area;
import eastsun.jgvm.module.event.ScreenChangeListener;
import eastsun.jgvm.module.ram.Getable;
import eastsun.jgvm.module.ram.RuntimeRam;
import eastsun.jgvm.module.ram.Stack;
import eastsun.jgvm.module.ram.StringRam;
import java.io.UnsupportedEncodingException;
import java.util.Calendar;
import java.util.Date;

/**
 * 完全支持GVmaker1.0的JGVM实现
 * @version 1.0 2008/1/15
 * @author Eastsun
 */
final class DefaultGVM extends JGVM {

    private static final int FALSE = 0;
    private static final int TRUE = -1;
    private GvmConfig config;
    private RamManager ramManager;
    private RuntimeRam runtimeRam;
    private StringRam stringRam;
    private ScreenModel screen;
    private Renderable render;
    private TextModel text;
    private KeyModel key;
    private FileModel file;
    private KeyModel.SysInfo keyInf;
    private InputMethod input;
    private LavApp app;
    private Stack stack;
    private int seed;
    private boolean end;
    private Calendar cal = Calendar.getInstance();
    private Date date = new Date();

    public DefaultGVM(GvmConfig cfg FileModel fileModel KeyModel keyModel) {
        this.config = cfg;
        runtimeRam = new RuntimeRam(cfg.runtimeRamSize());
        stringRam = new StringRam(cfg.stringRamSize());
        stack = new Stack(cfg.stackSize());
        ramManager = new RamManager(runtimeRam stringRam stack);

        text = new TextModel();
        screen = ScreenModel.newScreenModel();
        render = screen.getRender();

        text.setScreenModel(screen);
        if (screen.hasRelativeRam()) {
            ramManager.install(screen.getGraphRam());
            ramManager.install(screen.getBufferRam());
        }
        if (text.hasRelativeRam()) {
            ramManager.install(text.getTextRam());
        }
        key = keyModel;
        keyInf = key.getSysInfo();
        file = fileModel;
    }

    /**
     * 设置此GVM运行的lav程序文件并对JGVM做适当的初始化
     * @param app GVmaker程序
     * @throws java.lang.IllegalStateException 如果不支持此app的运行
     */
    public void loadApp(LavApp app) throws IllegalStateException {
        if (this.app != null) {
            dispose();
        }
        this.app = app;
        end = false;
    }

    /**
     * 卸去目前执行的app并释放及清理相应资源
     */
    public void dispose() {
        if (this.app == null) {
            return;
        }
        file.dispose();
        render.clearBuffer();
        render.refresh();
        ramManager.clear();
        text.setTextMode(0);
        this.app = null;
        this.end = true;
    }

    public boolean isEnd() {
        return end;
    }

    public InputMethod setInputMethod(InputMethod im) {
        InputMethod oldValue = input;
        input = im;
        return oldValue;
    }

    /**
     * 运行下一个指令
     * @throws java.lang.IllegalStateException 程序已经结束或不支持的操作
     * @throws InterruptedException 运行期间当前线程被中断
     */
    public void nextStep(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4122  2008-03-05 19:52  build.xml

     文件       5851  2008-07-18 13:30  dist\doc\allclasses-frame.html

     文件       5051  2008-07-18 13:30  dist\doc\allclasses-noframe.html

     文件      32920  2008-07-18 13:30  dist\doc\constant-values.html

     文件       5231  2008-07-18 13:30  dist\doc\deprecated-list.html

     文件       9699  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\class-use\FileModel.html

     文件       9039  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\class-use\GvmConfig.html

     文件      10443  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\class-use\InputMethod.html

     文件       9507  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\class-use\JGVM.html

     文件      12114  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\class-use\KeyModel.html

     文件      10978  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\class-use\KeyModel.SysInfo.html

     文件      11869  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\class-use\LavApp.html

     文件       5920  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\class-use\RamManager.html

     文件       7737  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\class-use\Renderable.html

     文件      17086  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\class-use\ScreenModel.html

     文件       5910  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\class-use\TextModel.html

     文件      14241  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\event\Area.html

     文件      13491  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\event\class-use\Area.html

     文件      10280  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\event\class-use\ScreenChangeListener.html

     文件       1294  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\event\package-frame.html

     文件       6945  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\event\package-summary.html

     文件       6430  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\event\package-tree.html

     文件       9420  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\event\package-use.html

     文件       9107  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\event\ScreenChangeListener.html

     文件      21727  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\FileModel.html

     文件      12926  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\GvmConfig.html

     文件      13390  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\InputMethod.html

     文件       5951  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\io\class-use\Crc16.html

     文件       6061  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\io\class-use\DefaultFileModel.html

     文件       7892  2008-07-18 13:30  dist\doc\eastsun\jgvm\module\io\class-use\DefaultKeyModel.html

............此处省略202个文件信息

评论

共有 条评论