Code covered by the BSD License
-
Extended Brookshear Machine A...
-
Extended Brookshear Machine E...
-
bm(varargin)
BM GUI for Brookshear Machine emulator
-
assembler(file)
ASSEMBLER is an assembler for the extended Brookshear machine
-
bitmapDisplay(hObject)
BITMAPDISPLAY displays low 128 bytes of memory as 32x32 bitmap
-
bits2strings(a, i, type)
BITS2STRINGS returns strings for displaying memory contents
-
bmachine
BMACHINE starts the emulator and assembler GUI
-
dble2f8(d)
DBLE2F8 converts from double to Brookshear's 1-byte floating point
-
dble2int8(d)
DBLE2INT8 converts double to 1-byte signed integer
-
decodeInstr(b1, b2)
DECODEINSTR decodes a BM instruction
-
f82dble(f)
F82DBLE converts Brookshear 1-byte float to double
-
instr2string(type, b1, b2)
INSTR2STRING returns string representation of instruction
-
instr2string_ass(b1, b2)
INSTR2STRING_ASS returns string representation of instruction
-
instr2string_desc(b1, b2)
INSTR2STRING_DESC returns string representation of instruction
-
int82dble(i)
INT82DBLE converts 1-byte signed integer to double
-
loadmem(machine, text)
LOADMEM loads instructions from text into memory
-
memstrings(machine, rows, ins...
MEMSTRINGS returns strings describing contents of memory as instructions
-
newbm
NEWBM creates a new Brookshear machine
-
nibbles2byte(x, y)
NIBBLES2BYTE converts two nibbles to a byte
-
oddaddr(pc, a)
ODDADDR checks whether an address is at an odd offset from the pc
-
readtext(filename)
READTEXT reads a file's text into a string
-
regstrings(machine)
REGSTRINGS returns strings representing the current state of the registers
-
resetReg(machine)
RESETREG resets registers
-
saveDisplay(hObject)
SAVEDISPLAY saves the current display in a file
-
savemem(machine, file, instty...
SAVEMEM saves the current state of memory in a text file
-
showhelp(name)
SHOWHELP displays a help file
-
showinstructions
SHOWINSTRUCTIONS displays a list of BM instructions
-
step(machine)
STEP carries out one execution step on a BM
-
string2val(type, inp)
STRING2VAL returns value from text entry in display
-
writetext(text, file)
WRITETEXT writes text to a file
-
Contents.m
-
Contents.m
-
todo.m
-
View all files
from
Extended Brookshear Machine emulator and assembler
by David Young
Emulator and assembler for a simple computer, a teaching aid for computer science courses.
|
| bmachine
|
function bmachine
%BMACHINE starts the emulator and assembler GUI
% BMACHINE starts a graphical user interface to an emulator for the
% machine described in "Computer Science: An Overview", 10th edition, by
% J. Glenn Brookshear (Pearson Education, 2008). The machine is extended
% with some additional instructions and is equipped with a bitmapped
% display.
%
% The emulator is intended as a teaching aid for introductory computer
% science courses. It may be programmed by entering machine code directly
% into memory, by writing a file of machine code instructions, or by
% writing a program in a simple assembly language.
%
% Details of the machine architecture, instruction set and assembly
% language are given in the HTML files which can be accessed from the
% interface. Example programs are available in the examples directory.
%
% When used for teaching, it may be convenient to start the emulator using
% a script or shortcut which invokes Matlab with command such as:
%
% <Matlab path>/matlab.exe /nosplash /nodesktop /minimize /r bmachine
%
% If the /nodesktop option is in effect, closing the emulator window
% will exit Matlab.
%
% This function sets the font size for the emulator to 12 if the screen
% is reasonably large, to improve accessibility as well as general
% legibility.
% Copyright 2008 University of Sussex and David Young
% Set font size depending on screen size.
p = get(0, 'Screensize');
if p(3) <= 1500 || p(4) <= 920
fsize = 8;
else
fsize = 12;
end
set(0, 'DefaultUicontrolFontSize', fsize);
set(0, 'DefaultUipanelFontSize', fsize);
% extend path to <this directory>/bmachine
addpath(fullfile(fileparts(mfilename('fullpath')), 'bmcode'));
% start emulator
bm
end
|
|
Contact us at files@mathworks.com