The Tangerine Microtan 65 (sometimes abbreviated M65) 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 had similar keyboard addressing and tape I/O as in the Microtan 65. The Microtan 65 had a single step function that could 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.
The Microtan 65 was intended as a general purpose microcomputer which could be used by laboratories, Original Equipment Manufacturers (OEM)s and the computer enthusiast, and it was designed with expandability in mind. In this way the customer could customise the system, be it as a specialised control system, as a learning tool, or as a general purpose computing device.
Price of the Microtan 65 board in 1981 was £79.35 (inc. VAT) in kit form or £90.85 ready-assembled. The system was not generally available in the shops, one of the few stockists at the time being Henry's Radio of Edgware Road, London.
The Microtan 65 was quite simple by today's standards, with:
an NMOS 6502 CPU running at 750 kHz clock rate
1K byte of RAM, used both for display memory and user programs
1K byte of ROM for the monitor program (not even called an operating system)
video logic and a television RF modulator, for the 16 rows of 32 characters display
a software scanned hexadecimal keypad
an optional ASCII keyboard
The major advance that the Microtan 65 had over a lot of the competition at that time was that the video display was flicker free. At the time a lot of microcomputers would either access the screen memory asynchronously to the video timing (causing flicker and splats on the screen), or would write to the screen memory during a non-display period (which was slow). The Microtan 65 got over this problem by making use of a major feature of the 6502. The 6502 (unlike most other CPUs) has a regular period in each instruction cycle when all CPU activity is inside the chip, leaving the external memory available without using complex external arbitration logic. This made video display design simpler and meant that video accesses could be made at maximum speed. This technique is also used on the ORIC and ATMOS computers.
The 32×16 characters was the reason that the 6502 was clocked at 750 kHz. To get the circuitry to work at a (nearly) standard video rate meant that the pixel clock had to be 6 MHz. When the Microtan 65 was designed only a 1 MHz 6502 was available, and so 750 kHz was used (6 MHz divided by 8).
The 1K byte monitor program (later increased to a 2K) was called TANBUG. The software facilities were rudimentary:
M = Memory modify / examine
L = List a block of memory
G = Go command (Run a program)
R = Registers display / modify
S = set Single step mode
N = set Normal mode (cancel S command)
P = Proceed command (execute next instruction in Single step mode)
B = set Breakpoints
O = calculate Offset for use in branch instructions
C = Copy a block of memory
The Microtan 65 memory map is shown below ($ representing a hexadecimal memory address):
$0000 Zero Page
$0200 Screen RAM
$0400 End of Microtan 65 RAM - map continued from $0400 to $0700 as RAM on TANEX
$F800 TANBUG V2
The screen memory occupies the space between $200 and $3FF. In addition to the standard 8 bits of screen RAM, there was an additional single bit RAM shadowing the $200 to $300 space. This was configured as a 9th bit write-only plane, and was used by the Microtan 65 for rudimentary, or "chunky", graphics. Setting the 9th bit displayed a Minitel type block graphic.
The display is 32 characters across by 16 lines down, with memory address $200 representing the top left hand displayed character, $220 the second row, etc. The character representation is standard ASCII. Several pieces of Microtan 65 software write to the bottom line by writing to memory starting at $3E0 - the leftmost character on the bottom line, rather than vectoring through TANBUG.
I/O in the Microtan 65 is decoded into a 16 KB space to simplify the hardware. In fact the 1 KB of RAM is mirrored through the bottom 32 KB, the I/O through the next 16 KB, and the EPROM through the top 16 KB. If you added an expansion board (see TANEX below) the decoding was modified and the wasted space reclaimed.
In common with other 6502 designs, I/O is mapped into the memory space. There is no dedicated I/O space as on the Z80, 8086 etc. The I/O ports are (when fully decoded):
Write to $BFF0 Clear Keyboard Flag (Keyboard would generate an IRQ)
Read from $BFF0 Turn Graphics On (enables "9th bit" graphics writes)
Write to $BFF1 Used by the hardware single step
Write to $BFF2 To write a scan pattern to the hex keypad (if fitted)
Write to $BFF3 Turn off Graphics (disable "9th bit" graphics writes)
Read From $BFF3 Read Keyboard Port (either keypad or ASCII keyboard)
Source: Wikipedia, "Microtan 65", available under the CC-BY-SA License.