Machine code monitor

Last updated
Machine code monitor in a W65C816S single-board computer, displaying code disassembly, as well as processor register and memory dumps W65C816S Machine Code Monitor.jpeg
Machine code monitor in a W65C816S single-board computer, displaying code disassembly, as well as processor register and memory dumps
Apple II 6502 machine code monitor Apple II Monitor.png
Apple II 6502 machine code monitor

A machine code monitor (a.k.a. machine language monitor) is software that allows a user to enter commands to view and change memory locations on a computer, with options to load and save memory contents from/to secondary storage. Some full-featured machine code monitors provide detailed control ("single-stepping") of the execution of machine language programs (much like a debugger), and include absolute-address code assembly and disassembly capabilities.

Motorola published the MIKBUG ROM monitor for the 6800 in 1973 and the BUFFALO ROM monitor for the 68HC11.

Machine code monitors became popular during the home computer era of the 1970s and 1980s and were sometimes available as resident firmware in some computers (e.g., the built-in monitors in the Commodore 128, Heathkit H89 and Zenith laptops). Often, computer manufacturers rely on their ROM-resident monitors to permit users to reconfigure their computers following installation of upgrade hardware, such as expanded main memory, additional disk drives, or different video displays.

It was not unheard of to perform all of one's programming in a monitor in lieu of a full-fledged symbolic assembler. Even after full-featured assemblers became readily available, a machine code monitor was indispensable for debugging programs. The usual technique was to set break points in the code undergoing testing (e.g., with a BRK instruction in 6502 assembly language [1] [2] [3] ) and start the program. When the microprocessor encountered a break point, the test program would be interrupted and control would be transferred to the machine code monitor. Typically, this would trigger a register dump and then the monitor would await programmer input. Activities at this point might include examining memory contents, patching code and/or perhaps altering the processor registers prior to restarting the test program.

In most systems where higher-level languages are employed, debuggers are used to present a more abstract and friendly view of what is happening within a program. However, the use of machine code monitors persists, especially in the area of hobby-built computers.[ citation needed ]

Related Research Articles

<span class="mw-page-title-main">Assembly language</span> Low-level programming language

In computer programming, assembly language, often referred to simply as assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence between the instructions in the language and the architecture's machine code instructions. Assembly language usually has one statement per machine instruction (1:1), but constants, comments, assembler directives, symbolic labels of, e.g., memory locations, registers, and macros are generally also supported.

<span class="mw-page-title-main">Motorola 6809</span> 8-bit microprocessor

The Motorola 6809 ("sixty-eight-oh-nine") is an 8-bit microprocessor with some 16-bit features. It was designed by Motorola's Terry Ritter and Joel Boney and introduced in 1978. Although source compatible with the earlier Motorola 6800, the 6809 offered significant improvements over it and 8-bit contemporaries like the MOS Technology 6502, including a hardware multiplication instruction, 16-bit arithmetic, system and user stack registers allowing re-entrant code, improved interrupts, position-independent code and an orthogonal instruction set architecture with a comprehensive set of addressing modes.

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

<span class="mw-page-title-main">Debugger</span> Computer program used to test and debug other programs

A debugger or debugging tool is a computer program used to test and debug other programs. The main use of a debugger is to run the target program under controlled conditions that permit the programmer to track its execution and monitor changes in computer resources that may indicate malfunctioning code. Typical debugging facilities include the ability to run or halt the target program at specific points, display the contents of memory, CPU registers or storage devices, and modify memory or register contents in order to enter selected test data that might be a cause of faulty program execution.

<span class="mw-page-title-main">KIM-1</span> Single-board computer produced by MOS Technology

The KIM-1, short for Keyboard Input Monitor, is a small 6502-based single-board computer developed and produced by MOS Technology, Inc. and launched in 1976. It was very successful in that period, due to its low price and easy-access expandability.

In-circuit emulation (ICE) is the use of a hardware device or in-circuit emulator used to debug the software of an embedded system. It operates by using a processor with the additional ability to support debugging operations, as well as to carry out the main function of the system. Particularly for older systems, with limited processors, this usually involved replacing the processor temporarily with a hardware emulator: a more powerful although more expensive version. It was historically in the form of bond-out processor which has many internal signals brought out for the purpose of debugging. These signals provide information about the state of the processor.

<span class="mw-page-title-main">AIM-65</span>

The Rockwell AIM-65 computer is a development computer introduced in 1978 based on the MOS Technology 6502 microprocessor. The AIM-65 is essentially an expanded KIM-1 computer. Available software included a line-oriented machine code monitor, BASIC interpreter, assembler, Pascal, PL/65, and Forth development system. Available hardware included a floppy disk controller and a backplane for expansion.

The Mensch Computer is a personal computer system produced by the Western Design Center (WDC). It is based on the WDC 65C265 microcontroller, which implements the instruction sets of two microprocessors: the 16-bit W65C816/65816, and the 8-bit 6502. The computer is named after Bill Mensch, designer of the 6502 and subsequent series of microprocessor.

Optimized Systems Software (OSS) was a company that produced disk operating systems, programming languages with integrated development environments, and applications primarily for the Atari 8-bit family of home computers. OSS was best known for their enhanced versions of Atari DOS, Atari BASIC, and the Atari Assembler Editor, all of which were substantially improved over Atari's products, as well as the Action! programming language. OSS also sold some software for the Apple II.

<span class="mw-page-title-main">Tangerine Microtan 65</span>

The Tangerine Microtan 65 was a 6502 based single board microcomputer, first sold in 1979, which could be expanded into, what was for its day, a comprehensive and powerful system. The design became the basis for what later became the ORIC ATMOS and later computers, which has similar keyboard addressing and tape I/O as in the Microtan 65. The Microtan 65 has a single step function that can be used for debugging at the hardware level. The computer was available as ready-built boards or as kits consisting of board and components requiring soldering together.

An instruction set simulator (ISS) is a simulation model, usually coded in a high-level programming language, which mimics the behavior of a mainframe or microprocessor by "reading" instructions and maintaining internal variables which represent the processor's registers.

In computing, a resident monitor is a type of system software program that was used in many early computers from the 1950s to 1970s. It can be considered a precursor to the operating system. The name is derived from a program which is always present in the computer's memory, thus being "resident". Because memory was very limited on those systems, the resident monitor was often little more than a stub that would gain control at the end of a job and load a non-resident portion to perform required job cleanup and setup tasks.

The Zapple Monitor was a firmware-based product developed by Roger Amidon at Technical Design Laboratories. TDL was based in Princeton, New Jersey, USA in the 1970s and early 1980s.

<span class="mw-page-title-main">SYM-1</span>

The SYM-1 is a single board "trainer" computer produced by Synertek Systems in 1975. It was designed by Ray Holt. Originally called the VIM-1, that name was later changed to SYM-1.

<span class="mw-page-title-main">Microprocessor development board</span> Type of printed circuit board

A microprocessor development board is a printed circuit board containing a microprocessor and the minimal support logic needed for an electronic engineer or any person who wants to become acquainted with the microprocessor on the board and to learn to program it. It also served users of the microprocessor as a method to prototype applications in products.

<span class="mw-page-title-main">HP 64000</span> Software development system

The HP 64000 Logic Development System, introduced 17 September 1979, is a tool for developing hardware and software for products based on commercial microprocessors from a variety of manufacturers. The systems assisted software development with assemblers and compilers for Pascal and C, provided hardware for in-circuit emulation of processors and memory, had debugging tools including logic analysis hardware, and a programmable read-only memory (PROM) chip programmer. A wide variety of optional cards and software were available tailored to particular microprocessors. When introduced the HP 64000 had two distinguishing characteristics. First, unlike most microprocessor development systems of the day, such as the Intel Intellec and Motorola EXORciser, it was not dedicated to a particular manufacturer's microprocessors, and second, it was designed such that up to six workstations would be connected via the HP-IB (IEEE-488) instrumentation bus to a common hard drive and printer to form a tightly integrated network.

Each time Intel launched a new microprocessor, they simultaneously provided a system development kit (SDK) allowing engineers, university students, and others to familiarise themselves with the new processor's concepts and features. The SDK single-board computers allowed the user to enter object code from a keyboard or upload it through a communication port, and then test run the code. The SDK boards provided a system monitor ROM to operate the keyboard and other interfaces. Kits varied in their specific features but generally offered optional memory and interface configurations, a serial terminal link, audio cassette storage, and EPROM program memory. Intel's Intellec development system could download code to the SDK boards.

<span class="mw-page-title-main">Single-board microcontroller</span>

A single-board microcontroller is a microcontroller built onto a single printed circuit board. This board provides all of the circuitry necessary for a useful control task: a microprocessor, I/O circuits, a clock generator, RAM, stored program memory and any necessary support ICs. The intention is that the board is immediately useful to an application developer, without requiring them to spend time and effort to develop controller hardware.

N8VEM was a homebrew computing project. It featured a variety of free and open hardware and software. N8VEM builders made their own homebrew computer systems for themselves and shared their experiences with other homebrew computer hobbyists. N8VEM homebrew computer components are made in the style of vintage computers of the mid to late 1970s and early 1980s using a mix of classic and modern technologies. They are designed with ease of amateur assembly in mind.

<span class="mw-page-title-main">Gigatron TTL</span>

The Gigatron TTL is a retro-style 8-bit computer, where the CPU is implemented by a set of TTL chips instead of a single microprocessor, imitating the hardware present in early arcades. Its target is the computing enthusiasts, for studying or hobby purposes.

References

  1. R.J. Tocci & L.P. Laskowski (1979). Microprocessors and Microcomputers: Hardware and Software . Prentice-Hall. p.  379. ISBN   9780135813225.
  2. L.A. Leventhal (1986). 6502 Assembly Language Programming. Osborne/McGraw-Hill. ISBN   9780078812163.
  3. A.F. Kuckes & B.G. Thompson (1987). Apple II in the Laboratory. UP Archive. p. 93. ISBN   9780521321983.