# Tangerine Microtan 65

The Tangerine Microtan 65 (sometimes abbreviated M65) was a 6502-based single board microcomputer, first sold in 1979, that 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. Those later machines have similar keyboard addressing and tape I/O as the Microtan 65. The Microtan 65 has a hardware single step function that can be used for debugging software in both ROM and RAM. 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 (OEMs), and computer enthusiasts, 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.
To accompany the hardware and to offer further support to users, a magazine was created, the Tansoft Gazette (name inspired by the Liverpool Software Gazette). This was edited by Tangerine employee Paul Kaufman who continued as editor when the magazine was renamed Oric Owner. Tansoft also became the name of Tangerine Computer's official software house which supplied a number of software products and books for the Microtan system and subsequently for the Oric range of computers.

## Main board

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
* video logic and a television RF modulator, for the 16 rows of 32 characters display
* a software scanned hexadecimal keypad
* an optional ASCII keyboard
* a DIN 41612 connector for expansion
Although the board + keypad could be used stand-alone, only 423 bytes were available for user program/data/stack and there was no facility for storing/loading programs.

### Display

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 an incidental 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-1 and Atmos, and in the unrelated Apple II.
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).

### Software

The 1K byte monitor program (later increased to a 2K) is 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

### Memory map

The Microtan 65 memory map is shown below ($ representing a hexadecimal memory address):
* $0000 Zero Page
* $0100 Stack
* $0200 Screen RAM
* $0300 Screen RAM
* $0400 End of Microtan 65 RAM—map continued from $0400 to $0700 as RAM on TANEX
* $8000 I/O
* $C000
* $F800 TANBUG V2
* $FFFF
The screen memory occupies the space between $200 and $3FF. In addition to the standard 8 bits of screen RAM, there was an (optional) additional 1-bit RAM shadowing the $200 to $300 space. This was used by the Microtan 65 to implement rudimentary Minitel type block graphics which worked as follows:
* After a CPU read from $BFF0 all subsequent CPU writes to the screen memory set the 1-bit RAM for the associated screen location
* After a CPU write to $BFF3 all subsequent CPU writes to the screen memory clear the 1-bit RAM for the associated screen location
* When the video logic reads the screen memory, a screen location in which the 1-bit RAM is clear is treated as an ASCII code and rendered using data from the character generator ROM. A screen location in which the 1-bit RAM is set is treated as a bit-map which controls the combination of 2 (horizontal) x 4 (vertical) blocks to render as bright/dark.
The display is 32 characters across by 16 lines down (64 x 64 graphics blocks), 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.

### Input/output

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)

## TANEX expansion board

Adding a TANEX board provided a number of features:
* an add-on to TANBUG called XBUG
* space for an additional 7K bytes of RAM
* five EPROM sockets
* two 6522 VIAs
* a 6551 UART, providing a cassette interface for storing and retrieving programs (300 baud CUTS, and 2400 baud), and a serial interface
Without a TANEX board, and due to deliberately ambiguous address decoding, the address $F7F7 would appear to the 6502 to have the same data as $FFF7. In TANBUG, this is a jump to an internal monitor routine. With TANEX installed, $F7F7 is decoded properly, and that address is an entry point into XBUG. XBUG provided features such as cassette tape loading and saving, a simple assembler / disassembler, hex calculator.
The ROM sockets on TANEX could be used to run a 10K Microsoft Extended BASIC, a two-pass assembler, or even (and more likely given the hardware bias of the Microtan 65) code written for a specific hardware control application.
Price of the TANEX board in 1981 was £49.45 as a "minimum configuration" kit—lacking one of the 6522 VIAs and the 6551 and with 1K of RAM—and £60.95 for a similar board fully assembled. TANEX was also available with the board fully populated with chips (although excluding XBUG, ROMs & BASIC) and in this form the costs were £103.16 for the kit and £114.66 ready assembled.

## Further expansion

The Microtan 65 was designed as a modular system able to be expanded as required, and for this each board included an 80-pin connector at one end allowing it to be plugged into a backplane-type motherboard. A simple two-socket "Mini Motherboard" connected the Microtan 65 and TANEX boards for minimum expansion and in this form the system was also available ready-built from Tangerine, complete with case and full ASCII keyboard, as the Tangerine Micron, costing £395.00 in 1981. For further expansion the builder could purchase the full "System Motherboard" which featured an additional ten sockets, bringing the total available sockets to twelve. For housing this, a "System Rack", rack-based case was available, in black and silver with a black front panel trimmed in Tangerine's trademark orange.
Additional boards became available with time, including a 40K memory board—TANRAM, made up of 32K of dynamic and 8K of static RAM, bringing the total non-paged memory to 48K, a dedicated parallel I/O board featuring 16 parallel input/output ports; a similar dedicated serial I/O board featuring 8 serial input/output ports, a disk controller board for use with disk drives, a Disk Operating System—TANDOS 65, a high resolution graphics board featuring 8K of static graphics RAM giving a resolution of 256 × 256 pixels, a dedicated 32K ROM board, (aimed mainly at OEM and general purpose applications or for use with AIM, KIM and SYM systems), capable of holding either 8 × 2732 or 16 × 2716 EPROMs; and a 32K RAM board featuring two 16K banks of 4116 dynamic RAM, again intended for similar purposes to the 32K ROM board. In addition, several third-party suppliers offered boards designed for use with the Microtan 65 system.
In addition to the BASIC programming language Tangerine also released on disk TANFORTH, an extended version of FIG FORTH featuring a full FORTH compiler and editor.