protected void handleMemByte(String[] tokens)
	{
		if(tokens.length != 2 && tokens.length != 3)
		{
			writer.println("usage: mb <address> [value]");
		}
		else
		{
			String address = tokens[1];

			if(tokens.length == 2)
			{
				// just read address
				try
				{
					int addr = parseInt(address);
					if(addr < 0 || addr >= memory.size())
					{
						writer.println("Address out of range");
					}
					else
					{
						writer.printf("%08x  %02x\n", addr, cpu.readMemoryByte(addr));
					}
				}
				catch(NumberFormatException e)
				{
					e.printStackTrace();
				}
			}
			else
			{
				//write address
				String value = tokens[2];
				try
				{
					int addr = parseInt(address);
					if(addr < 0 || addr >= memory.size())
					{
						writer.println("Address out of range");
						return;
					}
					int v = parseInt(value);
					cpu.writeMemoryByte(addr, v);
				}
				catch(NumberFormatException e)
				{
					e.printStackTrace();
				}
			}
		}
	}