Apricot F1 Technical Reference Manual
Apricot F1 Technical Reference Manual
Copyright
Portions of this manual contain material reprinted by permission of:
SONY Corporation, Copyright 1983
Trademarks
MS-DOS and Microsoft are registered trademarks of the Microsoft Corporation.
CP 1M is a registered trademark of Digital Research.
It is possibl e that this manual may contain references to or describe Apricot products which are not available in your country. Such references or information should not be taken as an un de rsta n di ng that these prod ucts wi II be com e ava il ab Ie.
Information contained in this document is subject to change without notice and does not represent a commitment on the part of Apricot.
All rights reserved, no use or disciosure without written consent. Copyright © Apricot Computers pic
Published in the U.K. by
Published in the USA by A[l ricot In c.
47173 Benicia Street Fremont
California 94538
Apricot UK Ltd Shenstone House Dudley Road Halesowen
West Midlands 863 3NT
Preface
The Technical Reference Manual for the ACT Apricot F 1 microcomputer is intended for programmers and engineers involved in hardware and software design for the F 1.
The Manual is divided into three sections and a number of appendices as detailed below.
1. Overview
This section provides an overall description of the F 1 and is sub-divided into three chapters:
System Overview
This chapter presents an overall picture of the F 1 concentrating on mainly the hardware, but also including information on some of the software aspects which are integral to the machines' operation.
Software
This chapter provides a brief description of the operating system and it's interface to the associated BIOS. An introduction to the software modules of the BIOS is also provided.
Options
This chapter forms the introduction to all the other ACT hardware options available for extending the capabilities of any machine within the range.
2. Hardware Detail
This section contains detailed descriptions of all the hardware aspects of the microcomputer and is divided into a number of chapters, as detailed in the following Contents section.
The Systems Unit and the Keyboard of the Flare discussed in detail with major programmable elements (e.g. serial port, display circuitry, etc.) also having separate descriptions.
Preface 1
3. Software Detail
This section contains a detailed description of all software aspects of the BIOS and is also divided into a number of chapters. The first provides a detailed description of the BIOS as a whole. Subsequent chapters detail the features and facilities of the individual hardware device drivers.
Appendices
A number of appendices are included in this manual which provide general hardware reference information and also associated software information of specific use to
systems / a ppl ication program mers.
Addenda
This section details installable device drivers supplied as system software and will also be expanded to reflect updates and changes as the product continues to be developed.
Associated Publications
MICROSOFT MS-DOS Programmer's Reference Guide This is an absolute necessity for anybody who wants to develop software for the Apricot. It provides details of:
1. MS-DOS 2.00 system calls and interrupts.
2. How to produce and install new device drivers,
3. MS-DOS memory maps, disk layout, DOS initialisation and many more technical details.
The UK source of this product is:
Order Processing Dept Microsoft Ltd, Piper House Hatch Lane, Windsor, BERKS.
DIGITAL RESEARCH GSX-86 Graphics Extension Programmer's Guide
This is a necessity for any programmer who wishes to produce graphics based packages interfacing to Apricot's implementation of the Digital Research GSX module. This product can be obtained through your local ACT dealer.
2 Preface
The 8086 Family User's Manual
This provides descriptive material on the Intel 8086 processor and includes all the necessary details on the instruction sets for asssembly language programmers. The manual can be obtained from an Intel distributor.
Preface 3
Contents
1.1 System Overview
2 Introduction
3 Details
3 Packaging and styling
6 Processing Capability
8 Memory
9 Disk Drives
10 Display Features
13 Keyboard
17 Printer Support
18 Communications
20 Expansion
27 Specification
1.2 Software Overview
2 Introduction
4 Details
4 Applications Interface
8 Operating Systems Interface
9 MS-DOS
10 ROM BIOS
1.3 Options
2 Introduction
3 Details
3 Display Options
5 RAM Expansion Boards
6 Modem Board
8 LAN Board
9 Mouse
10 Apricot MSD
1 7 Expansion Unit
Contents 1 2.1 Systems Unit
2 Introduction
3 Details
3 Mechanics
4 Connectors
6 Front Panel
6 System Board
8 I nfra-Red Detector Board
9 Disk Drive Unit
9 Expansion
10 Power Supply
12 Physical dimensions
2.2 System Detail
2 I ntrod uction
3 Details
3 General
6 Processor
8 Memory
10 Interrupt Control
1 1 Display Control
15 Floppy Disk Control
16 Expansion
17 Keyboard! Mouse data
18 System Reset
19 RS232 Communications
20 Parallel Printer Port
21 System Timer
21 Sound Generation
22 Port Addresses 2 Contents
2.3 Interrupt Control
2 Introd uctio n
5 Details
5 General
6 Maskable Interrupt vectors
7 Non-Maskable Interrupt (NMI)
7 Programming the controllers
9 Interrupt Control Sequence
10 Maskable Interrupts
13 Programming
2.4 Display Control
2 Introduction
3 Details
3 General
4 Display modes and Features
6 Drive Signals
7 Circuitry
9 Display RAM
12 Pointer RAM
15 Palette RAM
24 Mode Selection
25 Refresh control and Timing
29 Display Connectors
2.5 Expansion
2 Introduction
3 Details
3 General
4 Expansion Slot
7 Expansion Connector
8 Electrical Specification
9 Pin Detail
12 Address Allocation
13 Using Interrupts
16 Expansion Board Layout Contents 3
2.6 Floppy Disk Interface
2 Introduction 3 Details
3 General
5 Disk Write 6 Disk Read
7 Disk formatting
8 Read/write head positioning
10 FDe detail
10 General
7 7 Processor Interface
11 Data Requests
12 Interrupt Requests 14 Disk Drive Control 15 Command Register 16 Status Register
16 Track Register
16 Data Register
17 Programming Considerations 17 General
18 Disk Drive Selection 18 Motor Control
19 Head Loading
19 Head Positioning 23 Data Transfers
28 Formatting Commands 33 Force Interrupt Command
35 Interface Connection Detail 35 System Connections
37 Disk Drive Unit Connections
39 Track Format
4 Contents
2.7 Serial Interface
2 Introduction 4 Details
4 General
5 510 Overview
7 510 Architecture 10 Processor Interiace
12 Write Register Definition 13 Write Register Summary 14 Write Register 0
1 7 Write Register 1
19 Write Register 2
20 Write Register 3
21 Write Register 4 23 Write Register 5 25 Write Register 6 25 Write Register 7
25 Read Register Definition 26 Read Register 0
28 Read Register 1
29 Read Register 2
30 S 10 Interrupt Sequence 32 Keyboard/Mouse Data 34 Sound Generation
35 Channel A Programming Details 35 Copy Registers
36 Initialisation
37 Generating Sound
38 RS232C Communications 38 General
39 RS232C Connector Detail
40 Channel B Programming Details 40 Copy Registers
41 Setting the Base Vector
41 Asynchronous Communications
45 S 10 Pin Detail
45 System Connections 47 Channel A Connections 49 Channel B Connections
Contents 5
2.8 Printer Interface
2 Introd u ctio n
3 Details
3 General
4 Data Transfers
5 Connector Detail
6 Address Allocation
7 Prog ra m min g Consideratio n s
7 Data Port
7 Printer Status
7 Data Strobe
2.9 Timer
2 Introd uction
4 Details
4 General
4 Channel modes
5 Clock rates
5 Interrupts
7 Channel usage
8 Address allocation
9 Pro gram min g Consid eratio n s
9 Initial isatio n
10 Setting the base interrupt vector
10 Channel 0: Expansion Interrupts
11 Channel 1: RS232C baud rate
14 Channel 2: Sound Frequency
16 Channel 3: System Clock
16 Return from Interrupt Sequence
2.10 Sound Generation
2 I ntrod uctio n
4 Details
4 General
5 Generating Sound
6 Address allocation
7 Programming Considerations
7 General
8 Initialisation
8 Simple tones
10 Complex sounds
6 Contents 2. 11 Disk Drive
2 Introduction 4 Details
4 General
4 Interface Details
6 Interface Connections (Outputs) 7 I nte rface Con n ections (I n puts) 9 Disk Drive Mechanism
9 Read/Write Heads
9 Head Positioning Mechanism 9 Head Load Mechanism
10 Sensors and Detectors 10 Drive Switch Settings 12 Drive Specification
13 Disks
13 General
13 Disk Precautions
14 Disk Insertion/Removal 14 Write Protecting
14 Disk Format
2.12 Keyboard
2 Introduction 3 Details
3 Mechanics 4 Circuitry
4 Keyboard Scanning
5 Data Transmission Format 6 Keycode Data Encoding
11 Special Keys
Contents 7
3.1 Guide to the BIOS
2 Introduction 3 Bootstrap
5 Initialised drivers 7 Initialised BIOS 8 Built-in functions 9 Memory Map
11 Software interrupts 16 Hardware interrupts 17 Pointers
20 ASCII and Bit Screen Images 20 RAM BIOS for MS-DOS
21 Disk Label Sector and Configuration Table
3.2 Control device
2 Overview
3 General application 3 Introduction
4 Low level Control device access 5 High level Control device access 7 Errors
8 Specific application 9 Device Numbers
10 Screen
12 Keyboard 14 Seriall/O 18 Parallell/O
20 Mouse 21 Clock 22 Sound
24 Floppy disk 26 Winchester
8 Contents
3.3 Screen driver
2 Overview
3 Application interest 3 Screen images
4 Using ESCape sequences 6 Screen environment
7 Apricot compatible mode 9 Colour
13 ANSI ESCape sequences
15 Windows and Cursor addressing 16 Fonts
17 Ascii control codes
17 ESCape Sequence Table
33 Systems interest
33 Screen Bit Image
34 Character attributes
35 40 Column mode
35 Scrolling
36 Configuration table
3.4 Keyboard driver
2 Overview
6 Application interest
6 Changing the keyboard table 8 Implementing STRING keys
10 Changing the keyboard driver operation 12 Special Keys
13 Default STRINGS 14 Prefixes
14 User Interrupt (F9 hex)
15 Systems interest
15 Initialisation
16 Steering
17 Down-code handler 19 Queues
20 Configurator
21 Apricot compatibility 22 Configuration table
Contents 9
3.5 Serial 1/0 Driver
2 Overview
3 Applications interest
3 Configuring the Serial Driver
6 Generic differences
6 User Interrupts
8 Systems interest
8 Configuration table
3.6 Parallel 1/0 Driver
2 Overview
2 Applications interest
2 Systems interest
3.7 Clock Driver
2 Overview
2 Applications interest
3 Systems interest
3.8 Sound Driver
1 Overview
1 Applications interest
1 Systems interest
3.9 Disk Driver
2 Overview
3 Applications interest
3 Non-MSDOS systems
4 Drive types
4 Label Sector
6 MS-DOS format
7 Disk formats
8 Disk Swapping
9 Systems interest
9 Configuration data 10 Contents
3.10 GSX - GIOS Details
2 Overview
3 Applications interest 3 Display features
5 Calling GSX
6 Additions to GSX 1.3
18 Systems interest 18 System files
Contents 71
A - Diagnostic Error Codes
B - Default Keyboard Table
C - Ascii codes
D - Circuit Diagrams
E - ESCape sequence reference table 2 Specials
3 Character attributes 4 Screen attributes
5 Colour
6 Cursor positioning 7 WP primitives
10 Driver environment 13 Keyboard interaction 15 Generic obsoletes
F - Language interfaces
2 Overview
3 Interpretive Basic
5 The Data Segment Register 6 Non~BIOS routine calls
7 Compiled Basic
7 The Data Segment Register 8 Non-BIOS routine calls
9 9
10
'C' Programming Language The Data Segment Register Non~BIOS routine calls
Index
12 Contents
Section 1 Overview
Contents
Introduction Details
Packaging and styling Processing Capability Memory
Disk Drives
Display Features Keyboard
Printer Support Communications Expansion Specification
III u strati ons
1. Apricot F 1.
System Overview 1.1/1
Introduction
The F 1 is a full function business microcomputer, complete with a minimum of 256 Kbyte of RAM and a single double-sided MicroFloppy disk drive. It contains a sophisticated ROM based BIOS and the capability to drive either a monochrome or a colour monitor in a variety of resolutions and modes.
The standard features found on the F 1 micro are:
1. Parallel printer interface.
2. Asynchronous and synchronous RS232 com m u nication s capabil ities.
3. Expandibility (via an ACT compatible expansion Slot and/or a separate Expansion Unit).
4. Low profile professionally styled Keyboard with QWERTY typewriter layout, calculator keypad and function keys.
5. Flexible display driver circuitry which allows the programmer to drive a colour monitor (optional) in a variety of resolutions and display modes, Alternatively, the same circuitry can be configured to drive a monochrome monitor or a standard domestic TV (requires the optional TV modulator),
Instead of being linked to the Systems Unit by a cable, the Keyboard uses an infra-red link for transmission of keycodes and other data (time and date information, hardware reset, etc). Multiple machine environments where infra-red interference could occur from other users are catered for by the use of a "light-pipe". This acts as a transmission line which directs the infra-red from the Keyboard to its parent Systems Unit.
7.7/2 System Overview
Details
Packaging and Styling
The F 1 is composed of two main sections as previously mentioned; the Systems Unit and the Keyboard (see Figure 1). The machines are made into a full computer system by the addition of an appropriate display device. (A variety of different monitors are currently available as optional items from ACT. These include 9 inch and 12 inch monochrome monitors and a 10 inch colour monitor).
1. Systems Unit
2. Keyboard
3. IR Receivers
4. Status Indicators
5. Disk Drive
1. Mains Switch and Fuse assembly
2. PSU Input for Monochrome Display
3. Centronics Port
4. Composite Video Jack Socket
5. Colour/Monochrome Display Connector
6. RS232 Port
7. Expansion Plate
8. Expansion Cover
9. IR Transmitters
Figure 1. Apricot F 1
System Overview 1.1/3
The Systems Unit houses the majority of the control electronics, including the processing system and interfaces for:
1. A monochrome or colour monitor.
2. A standard domestic TV via an optional modulator.
3. Infra-red keyboard/mouse data.
4. Printers/plotters and similar devices.
5. External communications equipment.
6. Sound Generation.
It also contains the system RAM, a MicroFloppy disk drive, a power supply and a loudspeaker.
The Keyboard consists of a standard QWERTY typewriter section plus calculator keypad (with an identical key top layout to the Apricot pc/xi range of products), a block of 10. "fixed/programmable" function keys, and four recessed keys which perform specific fixed functions. It also includes:
1. Four AA batteries which form the power source for the keyboard electronics.
2. A processing system which provides the interface between the keys and the infra-red transmission circuitry.
3. A real time clock/calendar.
Freedom of user desk space was one of the criteria for using an infra-red cordless link between the Keyboard and the Systems Unit. This provides the user with a much greater flexibilty in positioning the Keyboard relative to the Systems Unit as compared with the standard cable link approach.
Four LED indicators are located on the front of the Systems U nit on the left-hand side of the disk drive slot. These provide the user with indications of various states within the machine, as specified by the associated indicator legend.
The indicators are normally illuminated to show the following states:
No Scroll Caps
STOP key is active.
CAPS LOCK key is active.
Disk The disk within the disk drive is being written to or read from.
Power The machine is switched on.
1 . 1 /4 System Overview
Connections for a printer, a display monitor (monochrome or colour), and external communications equipment are all located on the back of the Systems Unit. Connections for the optional modulator for driving a standard domestic TV are located internally within the Unit. A connector on the right-hand side of the Unit is provided for linking in an optional Expansion Unit.
This is not the only method of expansion available within the machine. A single Expansion Slot is also located within the Systems Unit. This is electrically and physically compatible with all the current ACT Expansion Boards.
The mains switch is also located on the rear of the unit. This is part of a combined mains switch/fuse holder module. The fuse is located behind a hinged flap on the switch module housing. .
A mains changeover link option is located internally within the Systems Unit to cater for the two standard mains operating voltages used throughout the world. This allows the F 1 to be configured at the factory for either 11 OV or 240Voperation.
To meet the desirable goal of quietness of operation, the F 1 does not employ a fan for cooling (the major noise source on most other micros). Instead, cooling is provided by the natural airflow created in and around the machine by the positioning of vents in the case relative to the internal components which generate most of the heat.
System Overview 1.1/5
Processing Capability
The F 1 employs the Intel 8086 as the main central processing element. The features of the Intel 8086 are well known, being a true 16-bit processor, supported by the two major microcomputer operating systems companies (Microsoft with MS-DOS, Digital Research with CPM-86 and Concurrent DOS), and possessing:
1. 16-bit wide internal register architecture.
2. 16-bit wide external data bus.
3. Segmented addressing structure to support modular programmmg.
4. The capability of addressing up to 1 Mbyte of memory
space and up to 64 Kbyte of system I/O.
The processing system operated on the board is a real time interrupt driven system, based upon the interrupt structure of the 8086 and the interrupt features provided by two Zilog chips; a zao 510 and a Z8G CTC. These two devices are daisy-chained and together supply a single interrupt line to the CPU. Hardware functions and processes which need interrupt facilities are in turn "connected" to these two devices (apart from the disk controller which uses the 8086 input NM I instead).
Each Zilog device posseses internal circuitry which perform the duties of an interrupt manager/arbitrator, making decisions to determine which hardware-driven process requires servicing by the 8086. The decisions are made on an fixed priority basis, with all interrupts fran the Z80 SID assigned a higher priority than the CTC.
Peripheral support for the 8086 is provided by a mixture of intelligent support chips and combinations of simpler standard logic elements.
The intelligent support chips include:
1. A Western Digital WD2797-02 Floppy Disk Controller for controlling the MicroFloppy Drive.
2. The Zilog Z80 510/2 which interfaces to the RS232C port, receives data from the infra-red keyboard link, generates sound and also provides part of the interrupt structure.
3. The Zilog ZaG CTC which acts as a general system timer, determines the baud rates for the RS232C port and also provides part of the interrupt structure.
1.1/6 System Overview
Another processor is located within the Keyboard, This is a NEG 7507 4~bit processor. It is employed to perform keyboard scanning, encoding of detected keys into a suitable format for transmission via the infra-red link, and the implementation of a real time clock/calendar.
System Overview 7. 1/7
Memory
The F 1 is fitted with a minimum of 256 Kbyte of system RAM (using 64K DRAMs) and is expandable by fitting one of the standard Apricot RAM expansion boards (128K, 256K or 512K RAM Expansion boards) into the F 1 Expansion Slot (I nitially for the U SA market the F 1 is fitted with 512K RAM as standard using 256K DRAM).
The other major area of memory within the machine is the Boot ROMs. The Boot ROMs contain a great deal more code than the original Apricot pc/x] machines. Instead of just containing a bootstrap loader, diagnostics, calculator, and a rudimentary screen handler (as with the original disk-based BIOS machines of the Apricot pc/xi range), the majority of the BIOS has also been incorporated within ROM.
The ROM BIOS includes all the device driver routines for handling the standard hardware devices of the F 1 (screen, keyboard, disk drive, parallel port, serial port etc - see Software Chapter following).
The BIOS also contains the generic Apricot applications interface for communicating with the low level BIOS hardware device driver routines; the extended Control Device Driver, as implemented on the Apricot Portable. The same standardised interface format is currently available on the Apricot pc/xi range of products in a limited form. This will be upgraded on the pc/xi range before the end of the year to match the functionality of the Apricot F 1 and Portable products.
Producing a ROM-based BIOS for the F 1 has the major advantage over disk-based BIOS machines of not occupying valuable code space in the system RAM which could be otherwise utilised by applications software.
The F 1 is fitted with two 16K x 8 bit ROMs to store the ROM-based BIOS (i.e. 32 Kbytes of code space). The board containing the memory is also tracked to take 32K x 8 bit ROMs to allow for future BIOS expansion.
7. 7/8 System Overview
Disk Drives
The F 1 incorporates a single integral MicroFloppy Disk Drive. The disk drive slot is located on the front facia of the F 1. A disk eject button is provided to ensure swift and easy removal of disks.
The disk drive fitted within the F 1 is a Sony double-sided MicroFloppy which uses 3.5 inch disks with a formatted storage capacity of 720 Kbytes of data.
The double-sided MicroFloppy disks contain 80 tracks per side, and are soft sectored with 9 sectors per track and 512 bytes per sector. The software format is a logical derivation of the IBM system 34 format for 8 inch disks and is common to all the MicroFloppy based products in the Apricot range (i.e. both the 70 track single-sided and 80 track double-sided disk drive based machines).
BIOS support is provided within the F 1 to allow single-sided 70 track MicroFloppy disks to be read from, written to and formatted within the F 1 's 80 track double-sided drive.
Prior to transportation, a packing disk should be inserted into th e F 1 S' disk d rive as a safety meas u re. Th is is necessary to avoid the possibility of excessive vibration causing damage to the disk drive heads.
The F 1 can also be easily upgraded into a Winchester based machine, using the Apricot MSD (Mass Storage Device) option. This consists of a pre-formatted 10 Mbyte Winchester Disk Drive, a Winchester Controller Board and a separate Power Supply U nit. The controller board fits into the F 1 s' Expansion slot. Both the 10 Mbyte drive and Power Supply are positioned externally to the F 1.
Support for the Winchester Disk Drive is also incorporated within the standard F 1 BIOS to allow the user to instantly have access to the extra storage space.
System Overview 1.1/9
Display Features
The design of the display circuitry of the Apricot F 1 is slightly different from the usual microcomputer display architecture.
The first major difference is that there is no high level CRT controller for generating display timing signals and display address lines. These are instead implemented by a variety of simple 74LS series components.
The second major difference is that there is no hardware differentiation between text and graphics; everything is pixel-based. i.e. A "dot" on the display screen is mapped by a corresponding bit(s) in the display memory.
In other words, it does not matter whether the F1 is displaying text or graphics, the display circuitry treats them both in an identical manner. This feature of the design makes it easier for the programmer to mix text and graphics as required by more and more integrated text and graphics based applications and window orientated operating systems.
The display memory is part of the system RAM and occupies 40.5 Kbytes in the lower 64K. 40 Kbytes are allocated in the system RAM to map out a pixel image of the display screen; the other 512 bytes are used to implement a series of 16-bit addresses which form a pointer to map each display scan line.
The modes, resolutions and display features available to the programmer provided by the display RAM are detailed in the next few paragraphs. The resolutions described match the resolutions of the current ACT colour and monochrome monitors produced for the F 1.
TheF 1 can be configured to drive either a colour or monochrome monitor with the programmer having the choice of displaying either 200 or 256 lines.
The programmer also has one further option, either using an 80 columnj640 pixel mode or a 40 column/320 pixel mode.
In the 640 pixel mode, the programmer can display up to 4 colours simultaneously (from a choice of 16) on a colour monitor, or up to 4 levels of greyscale if a monochrome monitor is connected instead.
In the 320 pixel mode, the programmer can display up to 16 colours simultaneously on a colour monitor, or up to 8 levels of greyscale if a monochrome monitor is connected instead.
J.1/ 10 System Overview
The 320 pixel/40 column mode is the mode which produces a sensible display output on a standard TV. (The relatively low bandwidth of a TV compared with a video monitor does not generally allow a sharply defined picture to be produced in the 640 pixel modes).
Colour / greyscale selection is provided by a palette. This is a small area of memory-mapped RAM which determines the colour mix/grey levels at the display outputs.
The 200 line modes have been implemented primarily for USA usage and other countries using 60 Hz mains supply frequency. The two 200 line modes as described previously are:
1.640 x 200 bit-mapped graphics using any 4 colours (or grey levels) from 16.
2.320 x 200 bit-mapped colour graphics using 16
colours (or 8 grey levels).
The higher resolution 256 line modes are for UK, European and other countries using 50 Hz mains supply frequency and are as follows:
1. 640 x 256 bit-mapped graphics using any four colours (or grey levels) from 16.
2.320 x 256 bit-mapped colour graphics using 16
colours (or 8 grey levels).
A default font of 128 characters (based within an 8 x 8 pixel cell) is contained in the system ROM. This is designed to be used with the 200 line resolution modes.
Each character is mapped by eight contiguous bytes in the ROM. A second font of 256 characters (7 x 7 characters based within an 8 x 8 pixel cell) is loaded into the system RAM at boot-up. Support in the BIOS also allows other 8 x 8 user-defined fonts to be installed within the system RAM. These can be easily accessed by simply modifying a font pointer.
A second default font of 256 characters (7 x 9 characters based within an 8 x 10 pixel cell) is loaded into the system RAM at boot-up. This is designed to be used with the 256 line display modes. Each character is mapped by ten contiguous bytes in RAM.
System Overview 1.1/7 1
Support in the BIOS also allows other 8 x 10 cell
user-defined fonts to be installed within the system RAM. These characters can also be easily accessed by simply modifying a font pointer. The 8 x 10 based font is of a greater resolution than the 8 x 8 based font for the 200 line modes but is of an identical 256 character set. The basic difference is in the construction of the characters, with lower case letters generally having longer descenders.
To obtain a sensible and usable "text mode" on both the colour display and monochrome display for existing text based applications, the attribute support by the BIOS is only allowed in "monochrome" on the colour monitor (i.e. any two colours from the possible sixteen) and any two grey levels on a monochrome monitor.
All the standard character attributes are available to the programmer in these two modes. These are produced by direct bit manipulation of the character image in the display RAM. Both normal and reverse video characters are supported with any combination of the following attributes:
1. Underline.
2. Strikethrough.
3. Intensity (simulated by shadow printing).
BIOS support for character attributes are not provided in the multi-colour modes due to the inherent nature of the colour display itself. {The same applies to the modes with more than two grey levels on a monochrome monitor}.
Since the only effect an attribute is used for is to differentiate a character{s) from other characters, any of the standard attributes can easily be represented by assigning attributes to a different colour in a multi-colour mode (corresponding to a different shade of grey on a monochrome monitor), instead of the standard "monochrome" method.
1.1/12 System Overview
Keyboard
The design of the F 1 Keyboard is slightly different from the keyboards found on other business micros; being a full function keyboard (92 keys) which is linked to the Systems Unit by infra-red and also incorporates a real time clock calendar (implemented in software).
The key layout is divided into a number of well defined sections. These are, looking from left to right across the key tops:
1. The QWERTY section which includes cursor, scroll and general editing keys. This is an identical layout to the one found on the Apricot pc/xi range of computers.
2. A calculator keypad.
3. 10 general/fixed fuction keys.
These keys are square in design and feature a slightly sculptured key top to ensure accurate user action.
Four machine function keys are located above the keyswitch array and are of an entirely different design. They are slightly recessed to avoid inadvertent user action.
The Keyboard is designed to be used with its spring-loaded feet extended. Buttons for releasing the feet from their storage position are provided on the side of the Keyboard.
The major advantage of using the infra-red link for transmission of keyboard data is that the user is free to site his Keyboard in the general vicinity of the Systems Unit but not necessarily directly in front of it. (Maximum practical distance for using the infra-red Keyboard is specified at up to 2 metres away from the Systems Unit).
To avoid the possibility of interference in multiple machine environments, a "light-pipe" is available for linking the Keyboard and Systems Unit together, This is a section of fibre optic cable which directs the infra-red keyboard transmissions to the receiver circuits of the parent Systems Unit.
To improve system reliability and ensure that the BIOS does not misinterpret data transmitted from the Keyboard, the keycode data is encoded using Hamming codes prior to transmission, This is an error correction/detection encoding technique which allows the BIOS to correct and detect errors in the transmitted key data.
System Overview 1.1/13
The keycodes are transmitted in serial packets of data, each packet consisting of 32 bits. The information contained in the transmission packet signifies the X-V co-ordinate of the pressed key and the key status. The key status identifies whether the key pressed is:
1. Shifted (SHIFT key + key pressed).
2. A control key sequence (CONTROL + key pressed).
3. In Auto-repeat mode (key was the last key to be
transmitted and is being held down).
The use of keycodes rather than using the ASCII equivalent to represent the key(s) makes it particularly easy for the programmer to redefine the keycode. Support in the BIOS is provided to allow this to be done by simply loading a new keyboard table into RAM and modifying a pointer to point to it. A default keyboard table is stored in ROM.
Not all keys can be reassigned by the applications programmer. Certain of the keys are designed to perform specific functions and are therefore masked off by the BIOS and processed in an entirely different manner. These include the TIME/DATE key and the four button keys RESET, REPEAT RATE, SET TIME and KB LOCK.
The TIME/DATE key causes the time and date information generated by the real time clock/calendar software routines within the Keyboard to be transmitted to the Systems Unit.
This is used by the ROM BIOS to update the BIOS internal clock, (as used by MS-DOS for its time and date stamp). The time and date data is supplied to the Systems U nit in 15 separate contiguous data packets following the TIME/DATE keycode packet.
The key also serves another function at machine switch on, where it initiates the boot loading sequence, if a bootable disk is within the disk drive.
The function of the RESET key is self-explanatory, being the system reset key. It generates a hardware reset in the Systems Unit and must be held down for approximately one second before it functions. The delay is implemented to prevent the user accidentally resetting the system.
The REPEAT RATE key is a toggle switch which allows the user to set the auto-repeat rate of the keys to either one of two values; a fast or a slow rate. (The repeat rate is the rate the keyboard transmits the keycode to the Systems Unit, when a key is held down).
7 . 1 / 14 System Overview
The SET TIME key is used to adjust the real time clock/calendar software within the keyboard. It can be actioned by the user anytime (before or after the system boot). Pressing the key displays a prompt on the 25th line of the display in the following format:
HH:MM DD/MM/YV
The user resets the time and date within the keyboard by typing in numerical values only using the numeric keypad
(e. g. typi ng 1 0000 11 285 sets th e keyboard clock to 1 0 am r 1 st 0 ec 1 985) .
The key does not send the updated time and date information to the ROM BIOS. This function is actio ned by the TIME/DATE key as described above.
The KB LOCK key is a toggle key which enables the user to deactivate the effect of all keys apart from RESET, SET TIME, TIME/DATE and KB LOCK itself, (i.e. it locks out the keyboard). Pressing the key again informs the BIOS to restore action to all the keys.
Another special key function on the Keyboard is the CALC key in the shifted mode (SHIFT key + F4) which can be redefined by applications software if required, but should generally not be reconfigured. The key sequence can be used prior to boot and can be also made available during applications or at the operating system level, to initiate the BIOS calculator software.
The calculator display appears on the 25th line of the display screen. The calculator keys are formed by:
1. The numeric keypad (1 to 9, the mathematical function
keys, decimal point and ENTER).
2. The CLEAR key.
3. The function keys, STORE, RECALL, M +, M-.
4. The CALC key.
After boot an extra calculator key is available to the user. This is the function key, SEND (obtained by CONTROL + F5). It enables the user to send the results or operands of a calculation to the cursor position on the screen.
The Keyboard is powered by four AA batteries, which are located behind a panel on the base of the Unit. These provide enough power to keep the Keyboard operational (under normal everyday usage) for approximately 6 months.
System Overview 1.1//5
To cater for custom keyboard layouts (Dvorak, the French style AZERTY format, or any other foreign language layout), the key tops have been designed to be easily removed and repositioned. Applying slight leverage underneath a key top releases it from its normal location.
Because the majority of the keyboard is software configurable, the programmer can reassign the keyboard to match a different layout simply by installing a new keyboard table, as described previously.
1,1/15 System Overview
Printer Support
The F 1 has two ports available for connecting printers; a Centronics port for parallel printers and an RS232C port which can be used for serial printers.
The Centronics port connections support two of the common handshake signals normally required/supplied on the majority of parallel interface printers:
1. Data Strobe
2. Busy
A description of the facilities provided by the RS232C port for serial printers and various communications device is detailed below.
System Overview 1. 1 / 1 7
Communications
A sophisticated RS232C communications port is provided as standard equipment for general purpose communications (via acoustic couplers, modems, direct connection to other micros, etc). It can also be configured for driving various printing devices (serial line printers, plotters, typesetters, etc).
The port can be programmed to operate in both asynchronous and synchronous modes, with the programmer having independent control over transmit and receive baud rates. These can be either set to the same value or set to operate with different rates for transmit and receive as required.
The baud rates can be selected under software control to be driven by an internal timer circuit at any of the more commonly used values (from 0 to 9.6 Kbaud) for general purpose communications.
Alternatively, a software switch enables the baud rates to be set by external equipment instead of the internal timer.
The programmer is able to choose from a variety of synchronous modes. These include the bit oriented modes HOLC and SOLC, and the byte oriented modes, Monosync and Bisync.
The control and timing signals available at the RS322 output (formed by a standard 25-pin D-type female connector) are as follows:
1. RTS (Request To Send)
2. CTS (Clear To Send)
3. DSR (Data Set Ready)
4. DTR (Data Terminal Ready)
5. DCD (Data Carrier Detect)
6. TxCK (Transmit Clock)
7. RxCK (Receive Clock)
Two supply outputs (+ 12V /-12V) are also available on the connector. These are primarily for use by the Apricot Point 7 network.
1 . 1/18 System Overview
Other communications facilities available to the F 1 are provided by optional Expansion Boards. The F 1 is hardware compatible with the Apricot integral Modem and the Apricot LAN card.
The applications-driven Apricot integral Modem provides the user with the facility to communicate over the telephone network via the F 1 .
The Modem is a frequency shift keyed (FSK) Modem conforming to CCITT V21 (300 bps full duplex) and CCITT V23 (1200/75 bps full duplex) standards. It has autoanswer capability conforming to CCITT V25 standard, and also incorporates an integral loop disconnect (pulse) autodialler.
Typical applications for the Apricot F 1 complete with
Modem are: -
1. Emulation of various computer terminals which are used for communicating to mainframes and minicomputers.
2. Access public and private databases.
3. Transfer files and data between the F 1 and any other micro or computer with asynchronous modem facilities available.
The Apricot LAN card with the appropriate network software allows the F 1 to be linked into the Apricot Point 32 network and function as a user network station. This provides the F 1 with the facility to access all the allocated resources (printers, file space, etc) provided by this powerful local area network.
Svstern Overview 1.//19
Expansion
A single Expansion Slot has been designed into the F 1 to cater for any single optional expansion cards the user may require. A plastic expansion plate is also located on the rear panel. This can easily be removed to allow external equipment to be connected to the expansion board with a minimum amount of modification to the machine.
A high degree of compatibilty has been maintained in the design of the Expansion Slot with the other products within the Apricot pc/x) range of computers. This is such that all existing ACT Expansion boards (Winchester Controller, Modem, RAM cards, etc) can be used within the F 1 Expansion Slot without any modification to the Expansion Board hardware.
The philosophy for using multiple Expansion boards is different to the one originally adopted on the Apricot pc/xi range of machines.
The user has the option to link the F 1 expansion bus connector (on the side of the Systems Unit) to a separately powered Expansion Unit fitted with multiple Expansion Slots. This user is then able to expand the facilities of the F 1 using the special features of the Expansion Unit.
The Expansion Unit is responsible for re-powering the Expansion bus to meet the drive capability of multiple Expansion Slots and also for providing a sensible interrupt structure.
7.1/20 System Overview
Specification
Processor: Intel 8086 running at 4.67 MHz.
Memory: 256 Kbyte System RAM.
32 Kbyte of Boot ROM (expandable to 64 Kbyte).
Disk: Double-sided MicroFloppy disk drive capable of being used with either 80 track double-sided (720 Kbytes) or 70 track single-sided MicroFloppy disks (315 Kbytes).
Printer
Support: Centronics port and RS232C port.
Comms. Port: RS232C port capable of being driven in either asynchronous or synchronous modes (Bisync, Monosync, HDLe or SOLe) with selectable baud rates (internally 50 to 9.6 Kbaud; or externally set by data communications equipment).
Expansion: One Apricot pc/xi compatible expansion slot + one Expansion bus connector for linking in an optional Expansion Unit.
Keyboard: Full function "soft" keyboard incorporating QWERTY layout, calculator keypad, four machine specific function keys, and a bank
of ten "fixed/general" function keys. Linked to the Systems Unit by infra-red. (Optional light-pipe connection for multi-machine environments).
Sound: Programmable tone/noise generator + integral loudspeaker.
System Overview 1. 1/21
Display Features:
Display Outputs:
Logic to drive either a colour monitor or a monochrome display in the following modes:
1) 640 x 200 resolution bit-mapped graphics using any 4 colours from 16 (c.f. 4 grey levels for the monochrome monitor).
2) 640 x 256 resolution bit-mapped graphics using any 4 colours from 16 (c.f. 4 grey levels for the monochrome monitor).
3) 320 x 200 resolution bit-mapped graphics using up to 16 colours (c.f. up to 16 grey levels for the monochrome monitor).
4) 320 x 256 resolution bit-mapped graphics using up to 16 colours (c.f. up to 16 grey levels for the monochrome monitor),
Default ROM based character font of 128 characters, Alphanumeric characters based within a 7 x 7 pixel matrix and contained in an 8 x 8 cell for 200 line modes. Default 8 x 8 RAM based character font of 256 characters as above, for 200 line modes.
Default RAM based character font of 256 characters, Alphanumeric characters based within a 7 x 9 pixel matrix and contained in an 8 x 10 cell for 256 line modes,
"Soft" font capability.
Software character attributes in "monochrome" modes;
1) Reverse
2) Underline
3) Strikethrough
4) Intensity
1. 9-pin D-type Male - Output for either a colour or a monochrome monitor,
2. Phono jack socket - Output for a composite monochrome monitor.
3, 5-pin Molex (located internally) - Output for a standard TV via optional modulator.
1.1/22 System Overview
Dimensions:
Weight:
Power ................................... ·Supply:
Current consumption:
Approvals: (pending)
Systems Unit -
Length: 16.5 inches (420 mm) Width: 8.7 inches (221 mm) Height: 6.3 inches (160 mm)
Keyboard -
Length: 17.7 inches (450 mm) Width: 6.6 inches (167 mm) Height: 1.1 inches (28.5 mm)
Systems Unit ~ 9.6 Ibs (4.35 kg) Keyboard - 2.91bs (1.32 kg)
Either 240V or 11 OV operation (selected by an internal link) .
Approximately 600mA - 240V Approximately 1.2A - 11 OV
UL ~ 114
CSA - C22.2 (No. 154 1983) BEAB-BS415
FCC - Class 8, Part 15, Subpart J
System Overview 1.1/23
Software Overview
Contents
Introduction Details
Applications Interface Operating Systems Interface MS-DOS
ROM BIOS
Software Overview 1.2/1
I ntrnd ucti on
The control software for the F 1 consists of three basic modules; a standard proprietary Disk Operating System (normally MS-DOS) and two BIOS modules; one resident in ROM, the other loaded into RAM at the same time as the operating system. (The BIOS is an acronym for Basic Input Output System).
The ROM based BIOS (hence termed ROM BIOS) consists of a number of basic hardware device drivers (screen, keyboard, disk, etc). These are responsible for controlling all the standard hardware devices within the computer (and also some of the Apricot optional add-on devices, e.g. the Apricot 10 Mbyte MSD).
The drivers in the ROM BIOS are not the only software device drivers supplied with the machine; three other loadable device drivers are also provided as standard software on the release disks, together with a graphics software interface (GSX).
The first load able device driver is an optional user facility for implementing a RAM disk (RAMDISK.SYS). The user is able to allocate 64K portions of the system RAM to simulate a floppy disk (i.e. a RAM Disk) to greatly enhance system performance.
The format of the entry in the CONFIG.SYS file for this installable device driver requires one argument as detailed below:
DEVICE=RAMDISK.SYS /n
where n represents the number of 64K portions allocated.
Note: A space must be inserted between the RAMDISK.SYS and the backslash.
The system software views the RAM Disk as an extra disk drive and allocates the next free drive designation to it. (i.e. On a single drive system, this would be drive 8).
Generally, implementation of the RAM Disk is only feasible on systems employing more than 256 Kbytes of system RAM.
1.2/2 Software Overview
The second loadable device driver is the modem driver (MODEMAPR.SYS). This is also an optionalloadable device driver. It provides the programmer with the necessary tools to integrate the communication facilities of the optional ACT integral modem into an application.
The third optionalloadable device driver is the Mouse device driver (MOUSE.SYS). This is linked into the system to handle all data transmissions from either the ACT infra-red mouse or the MicroSoft serial mouse. It forms an integral part of the graphics software and is also available for use with other
a ppl ications.
The fourth device driver is the GSX graphics driver. It differs from the other device drivers described above, since it does need to be installed at boot-up. (All the other drivers described above use the MS-DOS facility for installing loadable device drivers by appending an entry to the CONFIG.SYS file). The GSX graphics interface incorporates its own command file (GRAPHICS.EXE) for installing the software.
The function of the GSX graphics interface is to provide the programmer with a machine independent graphics interface.
Software Overview 1.2/3
Details
Applications Interface
On nearly all microcomputers, the applications programmer has a number of choices for integrating his software into the machine's environment. He can do this in any combination of three possible ways as described below:
1 . Using the facilities of MS-DOS.
2. Linking into either the ROM BIOS or other device driver routines.
3. Directly accessing the hardware.
MS-DOS
MS-DOS provides the programmer with a high level machine independent interface for applications programs. It allows programs to run on dissimilar machines (e.g. Apricots, IBM PCs, etc), providing no other machine specific features are accessed.
It also permits the programmer to create installable device drivers at the DOS interface level in a consistent manner. These drivers can either define a new device type to be used on an Apricot (e.g. the generic Modem driver, version 2.0 of MODEMAPR.SYS), or replace an existing driver (e.g. keyboard, screen driver, etc).
ROMB/OS
The way the applications programmer links into the Apricot ROM BIOS is via a simple interface, the Apricot Control Device. This provides a standardised method of accessing the BIOS routines and is adopted in the same generic format on all Apricot computers. (It is currently supplied in limited form on the pc/xi range of machines, but is soon to be upgraded into the same specification as found on the F 1 and Portable).
The Control Device allows the programmer to control basic low-level machine functions without having to resort to accessing the hardware.
7.2/4 Software Overview
If a programmer uses this interface for all features and facilities not available through MS-DOS, it will allow him to produce "portable" applications which will run on all members within the Apricot range of computers (Apricot pc/xis. F 1 s and Portables).
The Control Device thus provides the programmer with a low level machine independent interface to application
programs, which is compatible across the range of Apricot microcomputers.
The purpose of the Control Device is to hide the differences in the hardware between various models within the Apricot family. This does not mean that the application writer cannot use the special features which are implemented on one machine but are not available on another.
Inherent in the configuration parameters is data to enable the application programmer to identify which Apricot micro his application software is being run on. The writer can modify his software to use any special feature by first determining the machine and then tailoring the routines accord i n gly.
Hardware
Direct accesses to the hardware will not produce the desirable goal of machine independent code for the applications programmer.
The hardware of the Apricot micros is substantially diverse and port addressing significantly different. Code which writes directly to the hardware will require translation and rewrites for each product within the Apricot range of computers. This will of course make the application totally machine specific.
One area where the BIOS does actually mask out the differences in the hardware is in interrupt support for expansion cards. Even though the interrupt lines on the expansion bus are all wired to the same pins on the expansion board connector throughout the whole range of Apricots, the associated interrupt pointers differ from machine to machine.
Software Overview 7.2/5
To make it easier for the third party hardware vendor to produce compatible boards for the whole range, a software interrupt has been reserved which allows the programmer to set up his interrupt handler vectors and relate them to the physical interrupt line rather than the hardware interrupt pointer .
It will not always be possible for all application programmers to totally ignore the hardware and only use a combination of MS-DOS and the Control Device. Accessing the hardware will be necessary if certain features the programmer wishes to use are not available through MS-DOS or the BIOS (e.g. synchronous communications support via the RS232 port).
Direct accessing to the hardware can cause a few problems, generally associated with contention arising between the BIOS and the application when both are accessing hardware registers which are write-only. (The application and the BIOS would not normally know what has been set up by the other's software, and therefore could overwrite each other's code). This contention invariably results in the machine crashing.
To alleviate this potential problem, the BIOS maintains copies of certain write-only hardware registers which may be of use to the application programmer. These are stored in RAM and accesible to both the BIOS and the application.
The BIOS only changes bits within the hardware registers which are of interest to the BIOS and always makes a copy of any changes in the copy register, In order to avoid contention, the application should always adopt the same procedure.
Graphics
One of the current growth areas in applications software is in the use of graphics displays. Again, as with standard
machine functions, one of the most desirable goal for an applications writer is to be able to produce graphics software that is portable across a whole range of machines.
In order to do this, the applications writer requires a consistent software interface for graphics functions. This is provided by the Digital Research module GODS which is part of the Apricot implementation of GSX.
1.2/6 Software Overview
The GODS is a machine independent applications interface to graphics functions and is implemented on all Apricot micros.
It provides the programmer with a standard set of primitive graphics operations enabling him, by using a simple calling procedure to:
1. Draw lines, arcs, pie slices, bars and circles of various
styles, and colours.
2. Place text on the screen.
3. Plot points.
4. Fill polygon areas in various styles and colours.
5. Program the colour palette to alter the colours available on a colour monitor.
6. Interpret user input from the keyboard and mouse.
7. Configure the machine to match the desired resolution and colour mode, (e.g. 4 colour graphics on a colour monitor or lower
resolution 16 colour graphics).
Examples of programs which run under GSX are the utility programs contained within Activity, ACT Sketch and ACT Diary.
The GSX system is based on two modules, the GODS module from Digital Research and the GIDS (Graphics Input Output System), written by ACT.
The GIOS is the low level hardware interface which forms the bridge between the GDOS and the display hardware, This differs from machine to machine (as does the display hardware) and is not accessible to the programmer.
Different versions of the GIGS have been provided on the Portable to use the various display capabilities. GlOSs have been created to support a colour monitor in the following grap h ics confi 9 u ratio ns:
1.640 x 200 line graphics using 4 colours. 2. 640 x 256 line graphics using 4 colours. 3.320 x 200 line graphics using 16 colours. 4. 320 x 256 line graphics using 16 colours.
The programmer selects the appropriate GIOS to match his requirements by using a command available through GODS.
Software Overview 7.2/7
Operating Systems Interface
MS-DOS does not make requests for services by communicating directly with the ROM BIOS. All requests are directed via the RAM BIOS to the Apricot Control Device. The RAM BIOS handles all communications between MS-DOS and the Control Device. It interprets:
1. MS-DOS function requests and translates them into calls to the generic Control Device.
2. Status messages returned from the Control Device and
translates them into MS-DOS format.
Using a RAM based BIOS for this translation makes it particularly easy for other operating systems to use the routines within the ROM BIOS.
The only major function a different operating system manufacturer has to do to link into the machine is, to write a different RAM BIOS which performs the same function as the MS-DOS version and load it in together with his operating system at boot-up. This cuts out the time consuming exercise for the operating system manufacturer of having to create his own set of device drivers.
All the necessary details to allow other operating systems to produce generic boot disks (as supplied by ACT for MS-DOS) so that they are compatible across the different products in the range of Apricot microcomputers (e.g. Portables, pes and xis upgraded with the ROM BIOS) are included in later chapters.
1.2/ B Software Overview
MS-DOS
The features of Microsoft's MS~DOS are widely known, currently being the most widely used Ifi-bit microcomputer operating system.
The initial release of software supplied with the Apricot Portable is version 2.11. This will inevitably be upgraded to MS~DOS 3.05/3.06 in the near future, which features "hooks" for linking into the MS~NET networking software. On its own without the MS~NET module, DOS 3.06 is virtually identical in functionality to MS~DOS 2.11.
MS~DOS 2.11 is an extension of the widely used MS~DOS 2.0 which hailed the introduction of the enhanced operating system features of installable device drivers and tree-structured directory support. The main difference between these two versions is that DOS 2.11 provides support for international languages and uses 8~bit character codes in files instead of 7~bit.
Different versions of DOS 2.11 are available complete with MS~DOS utilities, which support foreign languages such as French and German.
Software Overview 7.2/9
ROM BIOS
The ROM BIOS has been discussed in detail in the Applications Interface section above with reference to the function of the Control Device. Instead of repeating this information, a brief summary of its salient points are detailed below. This is then followed by an introduction to the standard device drivers included within the ROM BIOS.
Besides consisting of the series of basic hardware device drivers, the ROM BIOS also contains the generic applications interface, termed the Apricot Control Device. This is implemented on all Apricot machines, (currently as a limited sub-set on the Apricot pc and xi machines but these machines are soon to be upgraded to the same interface specification as the F 1 and Portable).
The routines in the ROM BIOS are accessible to the application programmer via the control device interface. It provides the application programmer with an extremely easy and efficient way to access various low level routines, not normally available using calls to MS-DOS alone, thus allowing the programmer greater control of machine functions.
The programmer can access the Control Device in one of two ways.
The first method is designed to suit assembly language programmers and is similar to a MS-DOS function request. The programmer loads the 8086 registers with:
1. Information to specify the device to be accessed (e.g.
Keyboard driver).
2. A command (e.g. initialise)
3. Data as required.
A call is then made to the Control Device by generating the interrupt FCH.
The second method is designed to support higher level languages such as BASIC. The programmer accesses the Control Device by assembling a series of parameters (specifying the device, command and data as required) and passing them onto the stack by performing a far call to 0600H.
1.2/10 Software Overview
Drivers
The ROM BIOS contains the following standard device drivers, listed below. The actual function of each driver is indicated by their titles.
1. Keyboard Driver 2, Screen Driver
3. Disk Driver
4. Parallel Port Driver
5. RS232 Driver
6. Clock Driver
7. Winchester Driver
Keyboard Driver
This routine receives all data transmitted to the machine via the infra-red input. This includes keyboard and mouse data.
Decoded mouse data is not handled by the keyboard driver. It is immediately passed onto another routine via an interrupt. The mouse data handling routine may be the loadable mouse device driver, or any other routine installed by the application writer.
Keyboard data is always initially analysed for any special key depressions such as TIME/DATE, KB LOCK, SET TIME, REPEAT RATE. These keys are filtered off and sent off to the appropriate ROM BIOS routine to action a specific user function. They are therefore not accessible to the applications writer.
All other keys are converted to an Apricot compatible keycode (termed a downcode), which is normally used to select an entry from a keyboard table. The selected entry is then usually passed to MS-DOS via an 80 byte queue.
The keyboard table occupies a minimum of 1 K of memory space and can be either the default keyboard table in ROM or any other keyboard table loaded into RAM by the programmer. The use of a software keyboard table allows the programmer to translate a user key depression to any code or sequence of codes as required.
A simple mechanism enables the programmer to specify the keyboard table in use. This is achieved by modifying a pointer (the active key table pointer) to point to the start of the desired table.
Software Overview 7.2/71
A KEYEDIT utility is supplied with the system software to allow the user/programmer to either create new keyboard tables or modify an existing one.
The format of the keyboard table used on the F 1 is compatible with the format of the key tables used on all
oth er Ap ri cot co m p u ters (Po rtab I es, pes, xis, etc). It cons ists of four sections.
The first three sections contain the entries for keys in normal mode (single keystroke), shifted mode (key + SHIFT key), control mode (key + CONTROL key). The last section defines an area of string keys. This section of the table is accessed by programming the entries in the three other sections to act as a pointer into the string area.
Facilities are provided within the Control device interface to alter the way the driver handles the keycodes. The programmer has various options available, for manipulating keycode data such as:
1. Handling downcodes directly, missing out the translation process provided by the keyboard table.
2. Analysing and extracting keycodes from the 80 byte queue, and processing the data as required.
3. Placing data into the queue.
4. Checking driver status, sounding the bell, etc.
Interrupt support is also available to enable the application programmer to vector off keycode data to his own routines, as required.
Screen Driver
The features of the Screen Driver provide the applications programmer with comprehensive of the available display options (colour monitor, monochrome monitor, standard domestic TV, etc).
The basis for controlling the displays is via ESCape sequence support and calls to the Control Device.
1.2/12 Software Overview
The screen modes available through the driver are as follows:
1. Standard 80 column by 25 row character based display on either the colour or monochrome monitor (using any two colours from 16 on the colour display or any two grey levels from 16 on the monochrome monitor). The following attributes are also available in normal or reverse video:
Underline Strikethrough Intensity
This is termed the Apricot compatible mode, since it is available in the same format on all current machines.
2. 80 column by 25 row character based display using any four colours/grey levels from 16. Standard attributes not supported. Attributes generated by varying the foreground and background colour/grey level of the characters.
3.40 column by 25 row character based display using any four colours/grey levels from 16. Standard attributes not supported. Attributes generated by varying the foreground and background colour/grey level of the characters. Suitable for driving a standard domestic TV.
The displays can be driven in one of two different scan line resolutions; 200 or 256.
These are designed to match the display resolutions available on an ACT colour monitor when it is connected to either of the two mains supply input frequencies used in the majority of countries throughout the world.
The 200 line mode is primarily for use in the USA and other countries using 60 Hz mains supply lines. The 256 line mode is for use in countries using 50 Hz mains supply input (UK, European, etc),
Two fonts with 256 identical characters per font are normally downloaded into the system RAM at boot-up.
One of the fonts is based upon an 8 x 8 character cell and is available for use on display monitors running in 200 line mode, The second font is based upon an 8 x 10 character cell and is for use on display monitors set for the 256 line mode. The screen driver performs automatic selection of the correct font according to the line resolution mode selected by the application programmer.
Software Overview 1.2/13
A FONTEDIT utility is supplied with the system software to allow the user/programmer to either create new character fonts or modify an existing one.
The programmer can also dynamically change from font to font during run-time (if required), This is achieved by simply modifying a pair of font pointers, which specify the start of the currently active font.
A comprehensive set of ESCape sequences are inherent within the screen driver including a sub-set of the ANSI standards. These provide the programmer with:
1. Control of screen character attributes such as intensity, underline, etc in the Apricot compatible mode.
2. Colour/grey level selection. This includes; background and foreground screen colour/grey level in Apricot compatible mode; background screen colour/grey level plus background and foreground colours/ grey levels on a per character basis in the four colour/grey level modes; independent programming of the palette for other application usage.
3. Cursor control routines.
4, Word Processing primitives, such as Insert line, Delete line, etc.
5. Facilities for changing the screen environment e.g. to 80 columns, 4 colours etc.
6. Windowing functions.
7. Support for hard copy.
To make it easy for the programmer to build character images on the bit-mapped display, the driver supports a virtual screen image located in RAM.
Each character on the virtual screen is represented by a single word. The lower byte is the ASCII character code; the upper byte either signifies the character attributes or if a multi-COlour/grey level mode, the foreground and background colours for the character.
The programmer accesses the virtual screen via the control device interface. He can use it to build up character images in the background, and then command the driver to repaint the image on the bit-mapped display from the virtual screen.
Other support features provided by the control device allow the programmer to update individual characters on the screen with the appropriate attribute/colour selection as required.
1.2/14 Software Overview
Disk Driver
This driver has been primarily designed to provide the necessary support for MS-DOS disk operations to the floppy disk drive. The only entry point to the driver is via the Control Device interface.
The driver is configured to support both 70 track single-sided and 80 track double-sided disks, enabling multiple sector reads and writes to either type. It also provides calls for linking in a formatting program.
The applications writer can use the control device calls for checking disk status, and if so desired can perform read and writes to absolute disk sectors instead of using the MS-DOS file structure.
Parallel Port Driver
The parallel port driver is used to drive the Portable's Centronics port, thus providing applications support for sending data to parallel printers and plotters. The only method provided for accessing the driver, is via the Control Device interface.
Facilities provided by the Control Device allow the programmer to:
1. Examine/control the state of the Centronics interface handshaking signals.
2. Send characters to the driver's print buffer (the length of which is 2K bytes).
3. Clear the print buffer of characters, test for space in the
b uffe r, etc.
It also provides a call to re-route characters to a serial printer via the RS232 port.
RS232 Driver
This driver provides various support features to allow the programmer to drive the RS232 port asynchronously. The programmer's method of accessing these routines is via the Control Device interface.
Software Overview 1.2/15
The following features are available through the Control device interface for supporting asynchronous
com m u n ications:
1. Full duplex operation with variable length buffering available on both the transmit and receive paths (1 to 512 bytes).
2. Control of most of the commonly used transmit and receive baud rates.
3. Selectable parity and stop bits.
4. Control and status monitoring of the modem control lines; DTR, CTS, RTS. DSR and DCD.
5. XONjXOFF flow control.
6. Primitive teletype functions (e.g. automatic transfer of nulls after carriage return, etc).
Other features provided by the driver are:
1. Automatic vectoring of receive data to an installed mouse device driver to enable handling of data from a serial mouse.
2. Interrupt support to allow the hardware (Z80 510) to be driven directly by an application without having to resort to writing and reading to port addresses.
Clock Driver
This driver is driven by a hardware timer interrupt which is generated on a regular 20 ms cycle. The routine is responsible for maintaining the clock/calendar for the time and date stamp used by MS-DOS. This is updated when the user presses the TIME/DATE key.
It also handles various timing routines as required by the floppy disk drive, winchester, cursor control routines, printer routines, etc.
The application programmer can use the regular 20 ms cycle to implement his own timer related functions. He can link into the cycle by simply installing his own routines at a location specified by a software interrupt.
1.2 /16 Software Overview
Winchester Driver
This driver is provided to support add-on Winchester devices such as the Apricot MSD. As with the floppy disk driver, the main function of the driver is to provide the interface between MS~DOS and the disk drive.
The driver enables up to two Winchester drives to be supported in a single system. The Winchester drives can be of different capacities (e.g. a 5 Mbyte and a 10 Mbyte}.
The applications writer can use the control device calls for checking disk status, and if so desired can perform read and writes to absolute disk sectors instead of using the MS-DOS file structure.
There are no routines in the driver for linking in formatting programs,
SoftwareOverview 1.2/17
Options
Contents
Introduction Details
Display Options
RAM Expansion Boards Modem Board
LAN Board
Mouse
Apricot MSD
Expansion Unit
Options 1.3/1
Introduction
The basic configuration of the F 1 can be altered by the addition of various options to reflect the differing requirements of the user. These can be broken down into the following categories.
1. Display Options.
2. RAM Expansion Boards.
3. Modem Board.
4. LAN Board.
5. Mouse.
6. Apricot MSD.
7. Expansion Unit
1.3/2 Options
Details
Display Options
These can be further broken down into a number of different types, some of which are available from ACT and others which are available from independent suppliers. The display options available from ACT are:
1. 9 inch F 1 Monochrome Monitor.
2. 12 inch F 1 Monochrome Monitor.
3. 10 inch F 1 Colour Monitor.
4. TV modulator.
Alternatively, the F 1 can be used with a standard black and white composite monitor or any other standard IRGB colour monitor set up to match the required line resolution.
The monochrome options are supplied as a monochrome monitor plus a cable which includes an in-line transformer. This plugs into the two pin socket on the back of the F 1 to provide the supply for the monitor. The monitor plugs into the 9-pin D-type connector on the back of the F 1. It provides the F 1 with the facility to display text and graphics using a grey scale.
The colour monitor option also plugs into the 9-way D-type connector located on the back of the machine. It provides the F 1 with the facility for displaying text and graphics in colour.
The colour monitor option is a 16-colour IRGB monitor, which is powered directly from the mains supply.
Both the colour and monochrome monitor can be configured to run in either 640 x 200 line display mode (normally when using 60Hz mains supply input frequency) or 640 x 256 line display mode (50 Hz mains supply frequency).
Support in the BIOS allows the applications programmer to display text-based applications in either monochrome {any two colours from 16 on the colour display, any two grey levels on the monochrome monitor}, or using a 4 colour mode (any four colours from 16 or any four grey levels).
Options 1.3/3
Graphics support provided by the GSX interface allows the programmer to drive the monitor in either 4 colour mode (using 4 colours/grey levels from 16) or 16 colour mode with reduced resolution (using the full range of colours/grey levels on the monitor).
The F 1 can also be connected to a standard domestic television. This requires the optional TV modulator.
The modulator is fitted internally within the F 1 and monopolises the Expansion Slot. Connections to the TV are via a standard co-axial cable. TV support in the BIOS is provided by the 40 column modes. Support in GSX is provided by the 320 pixel resolution modes.
1.3/4 Options
RAM Expansion Boards
The RAM Expansion Boards are single board Expansion cards. The boards are available in three different memory sizes, 128 Kbyte, 256 Kbyte and 512 Kbyte. In the F 1, the appropriate board can be installed to increase the standard 256 Kbytes to anyone of the following values:
1.384 Kbytes. 2.512 Kbytes. 3.768 kbytes.
Options 1.3/5
Modem Board
The Apricot Modem is an integrated hardware and software communications package, which provides the F 1 with the facility to transmit and receive data via the Public Switched Telephone Network (PSTN).
The Modem communications package is provided as follows:
1. The Modem hardware, which fits internally within the F 1 utilising the Expansion Slot.
2. The Modem device driver software which is supplied as a loadable device driver which is part of the release software.
The Modem is driven via an applications software package interacting with the Modem device driver. This allows the programmer to define the particular service or use, the Apricot F 1 /integral Modem combination is to be configured for.
Both the hardware and the software device driver have been specifically designed to allow the Apricot/Modem combination to operate as a multi-purpose communicating microcomputer with a vast and diverse range of differing capaabilities, as defined by an applications program.
Typical applications for which the Apricot complete with Modem can be employed are detailed below:
1. Emulation of various computer terminals which are used for communicating to mainframes and minicomputers.
2. Act as an interface to British Telecom's viewdata services. This includes the public viewdata service Prestel, or any of the private viewdata services which are protocol compatible with Prestel. Details of Prestel are widely known. The less known service private viewdata, is operated by large organisations for dissemination of information from a private data base to dealers and clients. e.g. British Leyland's dealer information service.
1.3/6 Options
3. General purpose networking for transferring files and data between the Apricot and any other computer with asynchronous modem facilities available. Communications are not restricted in terms of distance. Both long distances up to thousands of miles (via the public telephone network), or even short distances within the confines of a building (limited local area network capability via a PABX), can be easily accommodated.
4, Function as a repertory dialler. (i.e. A telephone management system which provides automatic dialling of telephone numbers, selected from an internal directory for either voice or data connection),
The F 1/ Modem combination is not limited in its connection to a telephone network; it can be connected directly to the network or indirectly through the majority of PABXs with loop disconnect dialling facilities,
Connecting the F 1 fitted with the Modem into the telephone system is a simple operation. The Modem is fitted with a "flying lead" terminated with a series 600 plug. The F 1 can thus be easily connected anywhere on the PSTN by way of a standard series 600 socket.
Options 1.3/7
LAN Board
The Apricot LAN Board is an Expansion Board, which allows the F 1 to be linked into the Point 32 local area network as a workstation. This immediately provides the user with access to the resources allocated on the network (large capacity Winchester storage facilities, shared files, shared software, network printers, etc).
To link into the network requires both hardware and a software package (supplied with the network). The hardware consists of the LAN Board and a simple jack plug connection for linking into the network.
The software for the point 32 network is based upon Microsoft's MS-DOS 3.06 plus the MS-NET module. This provides the front end for both the user and the applications programmer.
The lower level communication mechanism for the network is based upon the Corvus Omninet. This is a 1 Mbitjs synchronous bit-oriented (SOLe style) transmission system which employs a carrier-sense multiple access/collision avoidance protocol to ensure the integrity of data
tra nsmissions.
A network software device driver (often referred to as the transport layer) is used to link the Microsoft modules to the low level Corvus Omninet System.
7.3/8 Options
Infra-red Mouse
The Mouse for the F 1 is identical to the Mouse for the Portable (apart from the colour of the plastics). It has been designed to be used either as a Mouse (by tipping it forward and rolling it along the desk), or as a tracker ball (keeping the Mouse stationary and moving the ball by finger movements),
The mouse is normally employed for cursor movement control and menu selection in graphics environments, but can be used within other applications as required,
A mouse device driver is supplied with the standard release software to allow applications to use the features and facilities of the device. This is an installable device driver which is loaded into the system using the MS"DOS CONFIG.SYS file mechanism.
The Mouse uses infra-red technology in a similar way to the Keyboard. As with the Keyboard, the Mouse can be sited within the vicinity of the F 1 but does not necessarily have to be directly in front of it. (The front edge of the mouse must of course point at all times during usage in the general direction of the front of the machine). The maximum practical range of the Mouse is specified at 2.5 metres away from the Systems Unit.
To avoid the possibility of interference in multiple machine environments, a "light pipe" is also available for linking the Mouse and Systems Unit together, This is a section of fibre optic cable (similar to the Keyboard cable) which directs the infra-red Mouse transmissions to the receiver circuits of the parent Systems Unit.
A two-position switch is located on the base of the unit This should be set to the position towards the rear edge if using the light-pipe and the other posion if not. The function of the switch, is to turn off one of the infra-red transmitting LEOs to conserve battery power.
To improve system reliability and ensure that the BIOS interprets the data transmitted from the Mouse correctly, the Mouse data is encoded using a similar format as used for the Keyboard. This employs a four byte synchronous data transmission format with each data byte encoded with Hamming codes.
Mouse data is transmitted in serial packets of data, with each packet consisting of a 32 bit code sequence. The information contained in the packet signifies the relative movement of the Mouse from it's previous position, and the state of the two Mouse buttons (pressed or not pressed).
Options 1.3/9
Apricot MSD
This device provides the F 1 with instant access to a large capacity (10 Mbyte) Winchester Disk. It is supplied as three items; a Winchester Controller Board, a Winchester Disk and a small power supply unit. The Winchester Controller Board plugs into the F Ts Expansion Slot, the other two items are mounted externally to the Systems Unit.
The Winchester drive is supplied pre-formatted complete with system tracks. It is configured as a single volume (drive A) to take full advantage of the tree-structured directory features of MS-DOS 2.11 and its future derivatives. (The floppy disk drive in a single Winchester system is automatically re-assigned as drive B)
Support for a Winchester is inherent in the standard ROM BIOS. All the user has to do to use the Winchester is install the components correctly and switch on.
Included in the initialisation routines of the ROM BIOS is a routine which checks for the existence of a Winchester Controller Board. If present, it checks the Winchester Disk Drive to determine it's size.
At the end of the initialisation sequence, the ROM BIOS displays the startup screen. If a Winchester is present, this is slightly modified from the standard display, to include the size of the Winchester Disk.
At the start of the boot sequence, the ROM BIOS first checks the floppy disk drive for a boatable disk. If not present, the machine boots automatically from the Winchester Disk, providing the user with instant access to a large non-volatile storage medium.
1.3/10 Options
Expansion Unit
The F 1 Expansion Unit provides the F 1 with multiple Expansion Slot capability. It is a separately powered unit and has been designed to be linked into the F 1 using the F 1 expansion connector. This is accessible by removing a small cover panel on the right hand side of the machine.
The cable extension extends the expansion bus out of the F 1 into the Expansion Unit. Here it is bufferd and re-powered to provide sufficient drive capability for two Apricot compatible expansion slots.
Options 1.3//7
Section 2 Hardware Detail
Systems Unit
Contents
Introduction Details Mechanics Connectors Front Panel System Board
Infra-Red Detector Board Disk Drive Unit Expansion
Power Supply
Physical dimensions
Illustrations
1. Systems Unit
2. Rear Panel Detail
3. Systems Unit Schematic
Systems Unit 2. 1 / 1
Introduction
The Systems Unit is the box which houses the the majority of the electronic and electrical components of the F 1.
This chapter describes the physical and electrical details of this unit.
1. Infra-Red Detector Board
2. System Board
3. Power Suppy
4. Expansion Connector
5. Expansion Slot
6. Metal Bridge assembly
7. Metal Bridge assembly
8. Disk Drive
9. RF Shielding
Figure 1. Systems Unit
2.7/2 Systems Unit
Details
Mechanics
All the electrical and electronic components are contained internally within the plastic case that forms the
Systems Unit.
The majority of the processing circuitry is contained on a single printed circuit board; termed the System Board. Infra-red detectors and a small section of logic circuitry are contained on a second board, the Infra-Red Detector Board (see Figure 1).
The System Board lies flat along the bottom of the Systems U nit. On the System Board are the main processor, the system memory, and their associated clocks, plus timing logic and control bus circuitry. Two expansion bus connectors are fitted onto the board for extending the system bus (address, control, and data lines).
Also on the System Board are the controllers and interface circuitry for; the disk drive, various types of display monitor. infra-red input data, a parallel printer, RS232C serial
co m m un icatio n 5 and 50 u nd gene ration.
The Infra-Red Detector Board is mounted on a metal bridge above the System Board and encased within a metal box. It is located at the front of the Systems Unit. Photodiode detectors are mounted on the edge of the board, to capture IR transmissions from the Keyboard or Mouse. The detector board translates IR pulses into electrical signals and supplies - them to the decoding circuitry on the System Board.
Mounted next to the Infra-Red Detector Board on the same metal bridge above the System Board, is the MicroFloppy Disk Drive Unit and a loudspeaker.
At the rear of the Systems Unit is another metal bridge assembly, which supports the Power Supply Unit.
The disk drive, I R Detector Board and speaker and power supply components are surrounded by shielding. The internal connectors to these components are all located in the middle section of the System Board, accessible between the two bridges.
Systems Unit 2. 7/3
After the back panel has been removed and internal links to the other components have been disconnected, the System Board can be slid horizontally out of the Systems Unit for servicmq.
Cooling is achieved by convection. Heat is generated principally by the Power Supply Unit and the MicroFloppy Disk Drive Unit. Vents are incorporated in the design of the Systems Unit plastics to ensure an adequate dissipation of waste heat without the need for a cooling fan.
Connectors
The connector for the mains power input, and the connectors for standard peripheral units (printers, plotters, external modems, display monitors, etc) are all located on the rear panel of the Systems Unit (see Figure 2).
Viewed from left to right the peripheral connectors along the Systems Board at the bottom of the rear panel are:
1. An RS232C serial communications port (25-pin female D-type).
2. A Display Unit connector for either an F 1 monochrome or an F 1 colour Monitor (9-pin male D-typ_e).
3. A Video Jack Plug socket for a composite TV monitor.
4. A Parallel Printer Port (36-way female Centronics
connector).
Above the Parallel Printer Port is the mains power input socket (3-pin male) with the power on/off switch above that. The mains fuse is accesed by prising open the hinged panel from the top which protects and surrounds both switch and socket.
To the left of the mains power input is a power input socket (2-pin male) for a 17 Volts A.C. supply. This is used only with the F 1 monochrome monitors and provides the means of powering the monitor.
The F 1 also has the ability to drive a standard domestic TV but requires an optional modulator which makes use of the internal Expansion Slot.
At the left hand end of the rear panel there is a plastic expansion plate. This can be removed to allow external equipment to be easily connected to Expansion cards fitted into the internal Expansion Slot with the minimum of modification to the rear panel.
2. J /4 Systems Unit
An external Expansion Connector is located next to the internal Expansion Slot on the System Board. This is provided for linking in the optional Expansion Unit. Removing a cover panel from the side of the Systems Unit, provides the necessary access to the connector for the Expansion Unit.
Another cover panel is also located on the righthand side of the F 1 but closer to the front. It can be removed to allow the control lines from the Floppy Disk Controller on the System Board to be routed to a second MicroFloppy disk drive.
This requires the existing Floppy Disk Controller ribbon cable assembly to be replaced by a daisy-chained cable with two connectors; one for the internal drive and one for the external drive. (Routines are inherent within the BIOS which support a dual disk drive configuration).
1. Power Supply Input-Monochrome Monitor
2. Mains Switch and Fuse assembly
3. Mains Input
4. Centronics Connector
5. Composite Video Connector
6. Colour/Monochrome Display Connector
7. RS-232 Connector
8. Expansion Plate
9. Expansion Cover
Figure 2. Rear Panel Detail.
Systems Unit 2.1/5
Front Panel
The front panel of the Systems U nit contains the slot for loading disks into the MicroFloppy Disk Drive, a column of four status display LEOs, and a transparent window through which the majority of infra-red transmissions are captured by a wide-angle lens mounted on the IR detector board.
Behind the transparent window on the IR Detector Board
are three photodiodes; one surrounded by the lens, the other two fitted into sockets on the front panel. The sockets are for connecting light pipes from the Keyboard and/or the Mouse.
The right hand socket operates a switch which cuts out the photodiode receiver surrounded by the lens to prevent interference from other infra-red sources in multiple
machine environments. The other two receivers are unswitched and are always left switched on.
The status display LEOs are used to indicate:
POWER Systems Unit power on
CAPS LOCK CAPS LOCK key active
STOP STOP key active
DISC Disk drive in use
System Board
The System Board incorporates the circuitry which perform the processing tasks within the system. Connectors that link the board to the other units within the Systems U nit and to external peripherals are also located on the board.
2.1/6 Systems Unit
The major circuit components on the board are:
1. The 8086 processor operating at 4.67 MHz.
2. The Boot PROMs, which contain the system code for bootstrap loading and the BIOS driver routines.
3. The system RAM (256 KBytes of dynamic RAM).
4. A Z80 Serial Input/Output (510) controller, which incorporates two independent communication channels, one for RS232 serial communications, the other for infra-red input data and for generating sound.
5. A zao Counter/Timer Circuit (CTC), with four
independent programmable counter/timer channels.
6. A WD2797-02 Floppy Disk Controller (FDe).
7. Display controller circuitry.
8. A 16 x 4-bit static RAM, which is used as a programmable Colour Palette.
9. An addressable, 8-bit Latch, which is used as a Control Port.
10. An 8-bit Data Latch for the Parallel Printer Port.
11. A 14 MHz oscillator which forms the fundamental frequency source for all the clock signals on the board.
Other ancilliary circuitry includes; data latches, multiplexers, transceivers, counters, and decoders. These are used as support control circuitry for synchronising signab on the System Bus, refreshing the DRAMs and cycling through the screen refresh addresses, and buffering transfers to external peripherals.
The chapter following provides a detailed desciption of the System Board and of its main functional components.
Systems Unit 2.1 / 7
Infra-Red Detector Board
The Infra-Red Detector Board is located above the System Board behind the transparent window in the front panel of the Systems Unit. It is linked to the System Board by a 4-wire cable assembly. This provides + 12V and +5V dc regulated supplies to the board and also carries the decoded I R signal pulses to the System Board.
The Board incorporates three photodiode detectors, an amplifier section, and a timer circuit (see Circuit Diagram in Appendix D). It converts input infra-red pulses into a form suitable for use by the receiver circuits on the System Board.
Two of the photodiodes are fitted behind sockets on the right of the transparent window. These sockets are for connecting light pipes to the Systems Unit.
A third photodiode detector is surrounded by a lens, in order to optically amplify freespace infra-red transmissions.
Fitting a light-pipe into the right hand photo-diode socket operates a switch which switches the diode surrounded by the lens off. This action is necessary to reduce the chance of interference from other infra-red sources in multiple machine environments.
Detected infra-red pulses are converted into electrical pulses by the diodes. To account for the variations in signal strength of the input infra-red pulses, and to prevent saturation of the diodes, the current through the diodes is regulated by an a.g.c amplifier (Q1).
Following conversion to a voltaqe. the raw input pulses are amplified by a high gain amplifier circuit (02,03), This produces a pulse output with an amplitude of approximately 2 to 5 V which is then supplied to a 555 timer circuit.
The timer is wired in a non-retriggerable mode to prevent false triggering once a pulse is detected. The timer "squares" up the raw input pulses of 18 to 20 {J.S duration and converts them into 25 f-1S duration output pulses. These are supplied to the System Board.
On the System Board, the transmitted signal is separated into timing and data pulses, so that the data signal can be clocked into the Z80 SIO as a standard monosync transmission.
2. 1/8 Systems Unit
Disk Drive Unit
The MicroFloppy Disk Drive Unit is mounted on a metal chassis above the System Board, behind and slightly on the right of the front panel.
The disk eject button of the Drive Unit fits through the front panel to provide the means for ejecting disks out of the disk drive.
A ribbon cable assembly connects the disk drive to the disk interface on the System Board. A second, 4-way, cable assembly supplies power from the System Board to the Drive Unit.
The MicroFloppy Disk Drives use SO-track double sided 3.5 inch MicroFloppy disks with a total storage capacity of 720 Kbytes of formatted data. The BIOS is also configured to allow the user to read, write and format 70-track single sided 3.5 inch MicroFloppies.
The DISC indicator on the front panel of the F 1 is connected to the control line which controls the loading of the disk drive heads. The indicator is illuminated every time a signal is sent to load the heads and remains so until the disk drive heads are unloaded.
Expansion
Two Expansion connectors are provided for extending the System Bus (address, control, and data lines). One of these is an Apricot compatible Expansion slot. This is located internally close to the Power Supply Unit and is designed to take any of the ACT Expansion Boards.
The second is the Expansion Connector for linking in the optional Expansion Unit, as previously discussed. This is located behind a snap-fit cover on the right hand-side of the Systems Unit.
The internal Expansion Slot is a 64-way connector (DIN 41612 2 by 32-way female with a type B housing). The signal lines connected to the Expansion Slot are 95% functionally compatible with all other machines in the current range of Apricot microcomputers. (The main area of difference is that there are no DMA facilities available on
the F 1).
Systems Unit 2.1/9
A removable Expansion cover panel is located on the rear panel of the Systems Unit to allow any Expansion Boards fitted into the Slot to be linked to external equipment as required.
The external Expansion Connector (60-way male IDC) is positioned on the right side of the Systems Unit. It is designed for linking in the optional Expansion Unit. This unit provides the user with multiple Expansion Slot capability. The unit has its own power supply and repowers and buffers the expansion bus to drive four Expansion slots. The Expansion Unit is also supplied with a -12 Volt supply line from the System Board to power a cooling fan.
Power Supply
General
The mains power input is connected to the Systems Unit via the 3-pin male connector on the rear panel. The mains supply is fed through a line filter via the input fuse and mains switch before being supplied to the rectifying and regulating circuitry of the Power Supply Unit (PSU).
The PSU rectifies mains supplies of either 110 Volts or 240 Volts AC. The unit is reconfigured to the appropriate mains voltage by connecting an internal jump lead across the appropriate pins within the PSU.
The PSU is of switched mode design, providing regulated outputs of + 12V, + 5V and -12V for use by both the System Board and all the other units within the Systems Unit. Other units are not fed directly with the dc supplies from the PSU, but are supplied via the System Board wiring and various cable assemblies. This includes the Disk Drive Unit, the Infra-Red Detector Board, and any expansion boards that are fitted to the internal Expansion Slot.
All other external devices, except the F 1 monochrome monitor, are normally supplied with mains directly to their appropriate input.
The F 1 monochrome monitor is powered by a 17V ac supply which is sourced by the transformer supplied with the monitor. This plugs into the two-pin connector on the
rear panel.
2.7 /70 Systems Unit
The 17V supply is routed through to the System Board wiring via the PSU de distribution cable assembly. It is rectified and switched under relay control through to the 9-pin display connector on the rear panel. Switching the mains supply to the F 1 on and off switches the 17V supply to the monitor on and off.
All power supply components are housed in a shielded case. A fuse is located in the mains input line, within the PSU. This is in addition to the user accessible mains input fuse within the mains switch housing.
DC Supply Distribution
The regulated outputs from the PSU are supplied to the System Board via a 7-wire cable assembly, which is terminated at both ends in Molex connectors.
The PSU provides two separate regulated supplies of +5V dc, a single regulated supply of + 12V DC, and another single regulated supply of -12V DC. The 17V ac for the F 1 black and white monitor is also routed through the PSU.
The maximum current ratings for the various supplies are detailed below, in the order in which they are supplied to the Molex connector on the System Board (starting nearest the centre of the Board).
1. + 5V supply 3.2A
2. Common ground
3. + 12V supply 1.0A
4. Common ground
5. - 12V supply O.2A
6. 17 Volts ac
7. 17 Volts ac
Distribution of the supplies from the System Board to the other areas are via the board wiring to the appropriate connector.
The System Board provides:
1. + 12V and +5V to the Infra-Red Detector Board, via a Molex connector and 4-wire cable assembly.
2. + 12V, + 5V and -12V to the internal Expansion Slot. (Units connected to the external Expansion Connector must supply their own power; the -12V output is used to power the Expansion Unit fan.)
3. + 12V and +5V to the disk drive, via a Molex connector and 4-wire cable assembly.
Systems Unit 2.1/11
Fuse rating
The rating of the fuse on the rear panel of the Systems Unit is as detailed below.
240V mains input - 2A, 5 x 20 mm fast action. 115V mains input - 2A, 5 x 20 mm fast action.
Physical Dimensions
Height: 6.3 inches Width: 8.7 inches Depth: 16.5 inches
Weight: 9.6 Ibs
(160 mm) (225 mm) (420 mm) (4.35 kg)
BELDEN SCREENED MAINS CORD SET
DISK DRIVE
LED BOARD
110Vj240V
SIGNAL/CONTROL, 26-WAY!
DC CABLE 4-WAY
4-WAY
IR BOARD
7-WAY DC CABLE
POWER SUPPLY UNIT
SYSTEM BOARD
I EXPANSION SLOT 64-WAY
COMPOSITE
VIDEO PORT
Figure 3. Systems Unit Schematic
2.1/12 Systems Unit
RS232 PORT 25·WAY
CENTRONICS PRINTER PORT - 36-WAY
VIDEO PORT 9-WAY
EXPANSION PORT 6O-WAY
System Detail
Contents
Introduction
Details
General
Processor
Memory
Interrupt Control Display Control Floppy Disk Control Expansion Keyboard/Mouse data System Reset
RS232 Communications Parallel Printer Port System Timer
Sound Generation
Port Addresses
III ust rati ons
1 , System Board: data flow schematic
System Detai! 2.2/ 7
Introduction
The purpose of this chapter is to present an overview of the principal circuit elements on the System Board. The programmable elements are then broken down into further detail in subsequent chapters. This chapter also describes various miscellaneous areas of circuitry which do not warrant a chapter of their own.
The chapter also provides a full list of memory and I/O port addresses as allocated within the F 1 system.
2.2/2 System Detail
Iletails
General
The devices on the System Board, and the control, timing and interface circuitry associated with them, are interconnected with the Intel 8086 processor using the standard three parts of a 16-bit bus-based architecture; a 16-bit Data Bus; a 20-bit Address Bus; and a multi-purpose Control Bus.
Figure 1 represents this architecture in a block schematic diagram. It shows all the major peripheral areas of circuitry which are linked to the CPU. For simplicity, the diagram omits the detail of timing and control signals.
The processing system operated on the board is a real time interrupt driven system based on the interrupt structure of the 8086 and the interrupt facilities provided by two Zilog chips, a Z80 S10 and a Z80 CTC. There is no proprietary interrupt controller. The two Zilog devices operate together to provide all the necessary prioritised interrupt handling.
Other hardware functions and processes which require interrupt facilities are in turn "connected" to these two devices instead of being directly connected to the 8086 (apart from the disk controller which uses NMI).
System Detail 2.2/3
Figure 1. System Board: data flow schematic
2.2/4
System Detail
Peripheral support for the 8086 is provided by a mixture of intelligent support chips and combinations of simpler standard logic elements.
These include:
1. A Western Digital WD2797R02 Floppy Disk Controller for controlling the MicroFloppy Disk Drive.
2. The Zilog Z80 S10/2 which interfaces to the RS232C port, receives keyboard/mouse data, generates sound and also provides part of the interrupt structure.
3. The Zilog Z80 CTC which acts as a general system timer, determines the baud rates for the RS232C port and also provides part of the interrupt structure.
4.256 Kbytes of DRAM (dynamic RAM - 512 Kbytes in the USA version). This is dual ported functioning as system RAM and bit-mapped Display RAM.
5.32 Kbytes of ROM which store the code for the ROM based BIOS (expandable to 64 Kbytes).
6. A 16 x 4Rbit static RAM which is integrated into the display control circuitry for selecting the colours/grey levels on the display monitor. This is termed the palette.
7. A parallel printer port constructed from discrete
74LS components.
Other areas of circuitry include; data latches, multiplexers, and transceivers; counters, timers, and decoders plus other pieces of "qlue" logic. These devices are used in the supporting control circuitry for synchronising signals on the System Bus, generating DRAM and screen refresh addresses, and buffering transfers to external peripherals and devices connected on the Expansion Bus.
System Detail 2.2/5
Processor
Details of the Intel 8086 processor are widely available. It is a true 16-bit processor, directly language compatible with the more commonly used 8088. It possesses:
1. 16-bit wide internal register architecture.
2. 16-bit wide external data bus.
3. Segmented addressing structure to support modular programming.
4. The capability of addressing 1 Mbyte of memory space
and 64 Kbyte of system I/O.
The 8086 is configured to operate in minimum mode (i.e. it does not sup port a m ulti-p rocessi n 9 confi g u ration) . It's bas i c clock frequency is 4.67 Mhz, which is derived from a 14 Mhz oscillator.
Wait States
A minimum of one wait state is automatically inserted into all memory and I/O transfer operations to and from the processor. This is extended in some cases to four wait states to suit the speed of slower peripherals (i.e. all peripherals mapped into the system I/O address range OOH to 3FH - see I/O address map at the end of the chapter).
CPU accesses to read from and write to locations in the System RAM (which includes the bit-mapped display RAM) are interleaved with accesses from two refresh circuits, which take precedence over processor accesses. One of the refresh circuits is used to refresh the Display; the second to refresh the DRAM array.
As processor accesses are asynchronous with the refresh cycles, the number of wait states inserted when accessing the Systen RAM is variable, being dependent on the refresh cycle (display refresh or DRAM refresh - if any) in progress. The minimum number of wait states inserted on a memory access is one; the maximum is 3.
External devices connected to the Expansion Bus can extend the basic one wait state to suit the slower speed of it's own peripherals, by activating the appropriate Expansion Bus input ready line (IORDY for I/O mapped peripherals; MRDY for memory mapped peripherals).
2.2/6 System Detail
Memory
The F1 is fitted with a minimum of 256 Kbyte of system RAM (using 64K x 1-bit DRAMs). This is expandable by fitting one of the standard Apricot RAM expansion boards into the Expansion Slot. Initially in the U SA only, the F 1 is fitted with 512 Kbyte RAM as standard using 256K x l-bit DRAMs. This is expandable to 768K using an Apricot 256K RAM Expansion Board.
In the 256 Kbyte model of the F 1 range, the System RAM is formed by two banks each of 128 Kbyte; one mapped into the address range OOOOOH to 1 FFFFH, the second into the address range 20000H to 3FFFFH.
Each bank is composed of sixteen 64K x l-bit DRAMs (one bit per data line).
In the 512 Kbyte model of the F 1 range, the System RAM is formed by a single bank of 256K x l-bit DRAMs (half the board is left unpopulated). In this model The System RAM occupies the address range OOOOOH to 7FFFFH.
The system RAM is located at the bottom end of the available memory address range and is sub-divided into a number of allocated memory areas. These are specified by the hardware/BIOS as follows:
Address (hex) 00000 - 003FF 00400 - 01 OFF
OlE 00 - 0 1 F F F 02000 - OC7FF aC800 - OEFFF OFOOO - 3FFFF *
Use
* OFOOO - 7FFFF on 512 Kbyte F 1, both models expandable to BFFFFH.
Not all of the available System RAM is available to the user or application.
The lowest 1 Kbytes are reserved for the standard Intel interrupt vectors (4 bytes per entry).
System Detail 2.2/7
42 Kbytes are reserved for mapping a bit-image of the screen (2 Kbytes are not normally used). 512 bytes are used to implement video line pointers. (Further details of display memory utilisation are provided in the section below on display control).
All other defined areas are allocated by the ROM based BIOS/operating system interface (see the "Guide to the BIOS" chapter for further details).
There is no proprietary DRAM controller for generating the necessary timing signals for accessing the DRAMs and refreshing the DRAM array. This is instead implemented by a series of 74LS counters, latches and other discrete logic elements. Hefreshinq the DRAMs is carried out during the display blanking period.
The System RAM area is not the only area of memory within the F 1. Two other areas exist. One area is the palette RAM, the second is the Boot ROMs.
The palette is a small area of memory-mapped RAM formed by a 16 x 4-bit static RAM. It occupies 32 bytes of the available memory address space, starting at EOOOOH.
(The RAM data lines are wired to the 4 LSB data lines of the system data bus). It is used to determine the colour
mix at the display outputs. (This equates to grey level selection if a monochrome monitor is connected - see display
control below).
The Boot ROMs are located at the top of the available memory addresss space. The Boot ROMs contain the bootstrap loader, diagnostics, calculator software and the BIOS code/ device driver routines for handling the standard hardware.
The BIOS code is currently contained in two 16K x 8-bit ROMs. The board is tracked to take 32K x 8-bit ROMs to allow for future BIOS expansion.
2.2/8 System Detail
Memory Map
FFFFFH
F8000H
FOOOOH
E001 FH EOOOOH
BFFFFH
7FFFFH
3FFFFH
aoaDOH
ROM
ROM Expansion
j Reserved
Palette RAM
Reserved
RAM Expansion
Standard
System RAM
, 256K F1
512K F1
1M
768K
512K
256K
System Detail 2.2 / 9
Interrupt Control
The interrupt structure operated within the system is provided by the interrupt handling facilities within the zao SID and the Z80 CTC. These two devices operate together to form a prioritised interrupt structure. Both devices can generate an interrupt and also produce an interrupt vector to indicate the cause of interrupt.
The Z8D SIO handles interrupt requests associated with:
1. Serial communications via the RS232C interface.
2. The keyboard/mouse data input channel
3. The sound output channel.
4. The Busy/Not Busy status control line from the printer
port.
The zao CTC handles interrupt requests from devices on the Expansion Bus, and uses one of its own counter/timer channels to generate the System Clock interrupt.
These two controllers are connected together in a daisy chain configuration to prioritise interrupt requests to the Interrupt Request (INTR) input of the CPU.
A hardwired connection between the two controllers automatically sets the priority of interrupts from the SIO higher than those from the CTC. The interrupt output lines from the two devices are required together in wire-ORed fashion to form a single input to the CPU's INTR input.
The CPU responds to interrupt requests by implementing a two-stage interrupt acknowledge cycle, which causes the relevant controller to supply an interrupt vector onto the System Data Bus.
When the interrupt has been serviced, the programmer must implement a Return from Interrupt command sequence to clear the interrupt from the daisy chain.
The various interrupts can be enabled and disabled individually by program commands to the SID and the CTC. All these interrupt sources can be masked as a group by clearing the Interrupt Enable Flag in the CPU. This action disables the Interrupt Request (INTR) input to the CPU.
2.2/10 System Detail
The Non-Maskable Interrupt (NMI) input to the CPU has a higher priority than any of the maskable interrupts to the Interrupt Request (INTR) input. The NMI input is connected directly to the Interrupt Request (INTRQ) output of the Floppy Disk Controller (FDe). This output is activated whenever a disk read, write or formatting operation is successfully completed. It is also activated for certain errors in disk access operations.
Display control
The F 1 has the ability to display information on a variety of different display monitors. These include:
1. An F 1 colour monitor.
2. An F 1 monochrome monitor.
3. A standard composite monitor.
4. A standard domestic colour TV (when fitted with the
optional TV modulator).
The design of the display circuitry of the Apricot F 1 is based on a bit-mapped architecture. There is no hardware differentiation between text and graphics; everything is pixel-based. i.e. A "dot" on the display screen is mapped by a corresponding bit(s) in the display memory.
The display memory is part of the system RAM and occupies 42.5 Kbytes in the lower 64K. 42 Kbytes are allocated in the system RAM to map out a pixel image of the display screen; the other 512 bytes are used to implement a series of 16-bit addresses which form a pointer to map each display scan line (video line pointers).
There is no high level CRT controller for generating display timing signals and display address lines. These are instead implemented by a variety of simple 74LS series components (counters, latches, etc).
The modes, resolutions and display features available to the programmer provided by the available display RAM are as detailed below. The resolutions described match the resolutions of the current ACT colour and monochrome monitors produced for the F 1.
System Detail 2.2/11
The F1 can be configured to drive either a colour or monochrome monitor with the programmer having the choice of displaying either 200 or 256 lines. The programmer also has one further option, either using an 80 column/640 pixel mode or a 40 column/320 pixel mode.
In the 640 pixel mode, the programmer can display up to 4 colours simultaneously (from a choice of 16) on a colour monitor, or up to 4 levels of greyscale if a monochrome monitor is connected instead.
In the 320 pixel mode, the programmer can display up to 16 colours simultaneously on a colour monitor, or up to a maximum of 8 levels of greyscale if a monochrome monitor is con n ected instead.
The 320 pixel/40 column mode is the mode which produces a sensible display output on a standard TV. (The relatively low bandwidth of a TV compared with a video monitor does not generally allow a sharply defined picture to be produced in the 640 pixel modes).
The table below summarises the display modes available on the F 1.
Screen mode
Resolution
Max. No. of Colours Available
40 column 40 column
80 column 80 column
320 x 256 320x200
640x256 640 x 200
* This normally equates to 8 grey levels on a monochrome display due to the inherent limitation of the display in being able to successfully differentiate 16 grey levels.
The Display Control circuitry provides both the video drive signals and the necessary synchronising pulses which control the movement of the video beam across the screen to drive a variety of display monitors.
For colour monitors, the video signals are the digitallRGB outputs with horizontal and vertical scanning controlled by the signals HSync and VSync respectively. These are supplied via the 9-way D-type connector on the rear of the F 1.
2.2/ 12 System Detail