⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memory.java

📁 熟悉非常简单CPU模拟器 1、将所给模拟器的源程序编译成执行程序。 2、运行并观察非常简单CPU模拟器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public
class Memory
   extends Frame
   implements AdjustmentListener, ActionListener
{

   public Memory( Frame parent, String windowTitle )
   {
      super( windowTitle );
		
      CPUBox = ( CPU ) parent;

      clear();
				
      MenuBar mbar = new MenuBar();
      setMenuBar( mbar );
		
      Menu type = new Menu( "Type" );
      type.add( new MenuItem( "View memory in HEX" ) );
      type.add( new MenuItem( "View memory in BINARY" ) );

      editMemoryMenuItem = new MenuItem( "Edit Memory" );
      editMemoryMenuItem.addActionListener( this );

      fillMemoryMenuItem = new MenuItem( "Fill Memory" );
      fillMemoryMenuItem.addActionListener( this );

      clearMemoryMenuItem = new MenuItem( "Clear Memory" );
      clearMemoryMenuItem.addActionListener( this );

      editMenu = new Menu( "Edit" );
      editMenu.add( editMemoryMenuItem );
      editMenu.add( fillMemoryMenuItem );
      editMenu.add( clearMemoryMenuItem );

      Menu view = new Menu( "View" );
/*
      view.add( new MenuItem( "Address 00h - 07FFh (0 - 2047)" ) );
      view.add( new MenuItem( "Address 0800h - 0FFFh (2048 - 4095)" ) );
      view.add( new MenuItem( "Address 1000h - 17FFh (4096 - 6143)" ) );
      view.add( new MenuItem( "Address 1800h - 1FFFh (6144 - 8191)" ) );
      view.add( new MenuItem( "Address 2000h - 27FFh (8192 - 10239)" ) );
      view.add( new MenuItem( "Address 28FFh - 2FFFh (10240 - 12287)" ) );
      view.add( new MenuItem( "Address 3000h - 37FFh (12288 - 14335)" ) );
      view.add( new MenuItem( "Address 3800h - 3FFFh (14336 - 16383)" ) );
      view.add( new MenuItem( "Address 4000h - 47FFh (16384 - 18431)" ) );
      view.add( new MenuItem( "Address 4800h - 4FFFh (18432 - 20479)" ) );
      view.add( new MenuItem( "Address 5000h - 57FFh (20480 - 22527)" ) );
      view.add( new MenuItem( "Address 5800h - 5FFFh (22528 - 24575)" ) );
      view.add( new MenuItem( "Address 6000h - 67FFh (24576 - 26623)" ) );
      view.add( new MenuItem( "Address 6800h - 6FFFh (26624 - 28671)" ) );
      view.add( new MenuItem( "Address 7000h - 77FFh (28672 - 30719)" ) );
      view.add( new MenuItem( "Address 7800h - 7FFFh (30720 - 32767)" ) );
      view.add( new MenuItem( "Address 8000h - 87FFh (32768 - 34815)" ) );
      view.add( new MenuItem( "Address 8800h - 8FFFh (34816 - 36863)" ) );
      view.add( new MenuItem( "Address 9000h - 97FFh (36864 - 38911)" ) );
      view.add( new MenuItem( "Address 9800h - 9FFFh (38912 - 40959)" ) );
      view.add( new MenuItem( "Address A000h - A7FFh (40960 - 43007)" ) );
      view.add( new MenuItem( "Address A800h - AFFFh (43008 - 45055)" ) );
      view.add( new MenuItem( "Address B000h - B7FFh (45056 - 47103)" ) );
      view.add( new MenuItem( "Address B800h - BFFFh (47104 - 49151)" ) );
      view.add( new MenuItem( "Address C000h - C7FFh (49152 - 51199)" ) );
      view.add( new MenuItem( "Address C800h - CFFFh (51200 - 53247)" ) );
      view.add( new MenuItem( "Address D000h - D7FFh (53248 - 55295)" ) );
      view.add( new MenuItem( "Address D800h - DFFFh (55296 - 57343)" ) );
      view.add( new MenuItem( "Address E000h - E7FFh (57344 - 59391)" ) );
      view.add( new MenuItem( "Address E800h - EFFFh (59392 - 61439)" ) );
      view.add( new MenuItem( "Address F000h - F7FFh (61440 - 63487)" ) );
      view.add( new MenuItem( "Address F800h - FFFFh (63488 - 65535)" ) );
      view.addSeparator();
*/
      view.add( new MenuItem( "Close Window" ) );

      mbar.add( view );
      mbar.add( editMenu );
      mbar.add( type );

//      vert = new Scrollbar( Scrollbar.VERTICAL, 0, 0, 0, 669 );
//      add( "East", vert );
//      vert.addAdjustmentListener( this );

      top = 0;
      bottom = 64;

      addWindowListener(

            new WindowAdapter()
            {

               public void windowClosing( WindowEvent e )
               {
                  setVisible( false );
               }

            }

         );

      setSize( 315, 400 );
   }

   public void adjustmentValueChanged( AdjustmentEvent ae )
   {
      scrollvalue = 15 * vert.getValue();
      repaint();
   }

   public boolean action( Event evtObj, Object arg )
   {

/*      if ( arg.equals( "Address 0000h - 07FFh (0 - 2047)" ) )
      { 
         top = 0;
         bottom = 2048;
         repaint();
         return ( true );
      }
      else if(arg.equals("Address 0800h - 0FFFh (2048 - 4095)"))
      {
			top=2048;
			bottom=4096;
			repaint();
			return true;
      }
      else if(arg.equals("Address 1000h - 17FFh (4096 - 6143)"))
      { 
			top=4096;
			bottom=6144;
			repaint();
			return true;
      }
      else if(arg.equals("Address 1800h - 1FFFh (6144 - 8191)"))
      {
			top=6144;
			bottom=8192;
			repaint();
			return true;
      }
      else if(arg.equals("Address 2000h - 27FFh (8192 - 10239)"))
      { 
			top=8192;
			bottom=10240;
			repaint();
			return true;
      }
      else if(arg.equals("Address 28FFh - 2FFFh (10240 - 12287)"))
      {
			top=10240;
			bottom=12288;
			repaint(); 
			return true;
      }
      else if(arg.equals("Address 3000h - 37FFh (12288 - 14335)"))
      { 
			top=12288;
			bottom=14336;
			repaint();	 
			return true;
      }
      else if(arg.equals("Address 3800h - 3FFFh (14336 - 16383)"))
      {
			top=14336;
			bottom=16384;
			repaint();	 
			return true;
      }
      else if(arg.equals("Address 4000h - 47FFh (16384 - 18431)"))
      { 
			top=16384;
			bottom=18432;
			repaint(); 
			return true;
      }
      else if(arg.equals("Address 4800h - 4FFFh (18432 - 20479)"))
      {
			top=18432;
			bottom=20480;
			repaint();	
			return true;
      }
      else if(arg.equals("Address 5000h - 57FFh (20480 - 22527)"))
      { 
                        top=20480;
			bottom=22528;
			repaint();	
			return true;
      }
      else if(arg.equals("Address 5800h - 5FFFh (22528 - 24575)"))
      {
			top=22528;
			bottom=24576;
			repaint();	 
			return true;
      }
      else if(arg.equals("Address 6000h - 67FFh (24576 - 26623)"))
      {
			top=24576;
			bottom=26624;
			repaint();	
			return true;
      }
      else if(arg.equals("Address 6800h - 6FFFh (26624 - 28671)"))
      { 
			top=26624;
			bottom=28672;
			repaint();	
			return true;
      }
      else if(arg.equals("Address 7000h - 77FFh (28672 - 30719)"))
      {
			top=28672;
			bottom=30720;
			repaint();
			return true;
      }
      else if(arg.equals("Address 7800h - 7FFFh (30720 - 32767)"))
      { 
			top=30720;
			bottom=32768;
			repaint();	
			return true;
      }
      else if(arg.equals("Address 8000h - 87FFh (32768 - 34815)"))
      {
			top=32768;
			bottom=34816;
			repaint();
			return true;
      }
      else if(arg.equals("Address 8800h - 8FFFh (34816 - 36863)"))
      {
			top=34816;
			bottom=36864;
			repaint();	
			return true;
      }
      else if(arg.equals("Address 9000h - 97FFh (36864 - 38911)"))
      { 
			top=36864;
			bottom=38912;
			repaint();	 
			return true;
      }
      else if(arg.equals("Address 9800h - 9FFFh (38912 - 40959)"))
      {
			top=38912;
			bottom=40960;
			repaint();	
			return true;
      }
      else if(arg.equals("Address A000h - A7FFh (40960 - 43007)"))
      { 
			top=40960;
			bottom=43008;
			repaint();	
			return true;
      }
      else if(arg.equals("Address A800h - AFFFh (43008 - 45055)"))
      {
			top=43008;
			bottom=45056;
			repaint();	
			return true;
      }
      else if(arg.equals("Address B000h - B7FFh (45056 - 47103)"))
      {
			top=45056;
			bottom=47104;
			repaint();	 
			return true;
      }
      else if(arg.equals("Address B800h - BFFFh (47104 - 49151)"))
      {
			top=47104;
			bottom=49152;
			repaint();	 
			return true;
      }
      else if(arg.equals("Address C000h - C7FFh (49152 - 51199)"))
      { 
			top=49152;
			bottom=51200;
			repaint();	
			return true;
      }
      else if(arg.equals("Address C800h - CFFFh (51200 - 53247)"))
      {
			top=51200;
			bottom=53248;
			repaint();	
			return true;
      }
      else if(arg.equals("Address D000h - D7FFh (53248 - 55295)"))
      { 
			top=53248;
			bottom=55296;
			repaint();	
			return true;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -