CODINGCPC464/664/6128 Firmware ROM routines and explanations

CPC464/664/6128 Firmware ROM routines and explanations
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

CPC464/664/6128 FIRMWARE
ROM routines and explanations
Bruce Godden and Paul Overell, Locomotive Software
David Radisic, Amstrad

Published by
Amstrad Consumer Electronics plc
Brentwood House
169 Kings Road
Brentwood
Essex

All rights reserved
First edition 1986

Reproduction or translation of any part of this publication without the written permission of the copyright owner is unlawful,
Amstrad and Locomotive Software reserve the right to amend or alter the specification without notice. While every effort has heen
made to verify that this complex software works as descrihed, it is not possible to test any program of this complexity under all possible
conditions Therefore the program and this manual are provided “as is” without warranty of any kind, either express or
implied.
IBM is a trademark of International Business Machines Corporation.
CP/M. CP/M Plus and Dr Logo are trademarks of Digital Research Inc.

SOFT 968 Copyright © 1986 Locomotive Software Ltd and Amstrad Consumer Electronics plc

The Contents.

1 The Firmware

1.1 The Hardware
1.2 The Division of the Firmware
1.3 Controlling the Firmware
1.4 Jumpblocks
1.5 Conventions
1.6 Routine Documentation
1.7 Example of Patching a Jumpblock

2 ROMs, RAM and the Restart Instructions

2.1 Memory Map
2.2 ROM Selection
2.3 The Restart Instructions
2.4 RAM and the Firmware
2.5 Bank Switching

3 The Keyboard

3.1 Keyboard Scanning
3.2 Key Translation
3.3 Characters from the Keyboard
3.4 Shift and Caps Lock
3.5 Repeating keys
3.6 Breaks
3.7 Function Keys and Expansion Tokens
3.8 Joysticks

4 The Text VDU

4.1 Text VDU Coordinate Systems
4.2 Streams
4.3 Text Pen and Paper Inks
4.4 Text Windows
4.5 The Current Position and the Cursor
4.6 Characters and Matrices
4.7 Character Output and Control Codes

5 The Graphics VDU

5.1 Graphics VDU Coordinate Systems
5.2 The Current Graphics Position
5.3 Graphics Pen and Paper Inks
5.4 Graphics Write Mode
5.5 Graphics Window
5.6 Writing Characters
5,7 Drawing Lines
5.8 Filling Areas

6 The Screen

6.1 Screen Modes
6.2 Inks and Colours
6.3 Screen Addresses
6.4 Screen Memory Map

7 The Sound Manager

7.1 The Sound Chip
7.2 Tone Periods and Amplitudes
7.3 Enveloping
7.4 Sound Commands
7.5 Sound Queues
7.6 Synchronisation
7.7 Holding Sounds

8 The Cassette Manager

8.1 File Format
8.2 Record Format
8.3 Bit Format
8.4 The Header Record
8.5 Read and Write Speeds
8.6 Cataloguing
8.7 Reading Files
8.8 Writing Files
8.9 Reading and Writing Simultaneously
8.10 Filenames
8.11 Cassette Manager Messages
8.12 Escape Key
8.13 Low Level Cassette Driving

9 AMSDOS

9.1 Features
9.2 Filenames
9.3 File Headers
9.4 Disc Organisation
9.5 Boot Sector
9.6 AMSDOS Messages
9.7 BIOS Facilities Available to AMSDOS
9.8 Store requirements
9.9 Extended Disc Parameter Blocks

10 Expansion ROMs, Resident System Extensions and RAM Programs

10.1 ROM Addressing
10.2 The Format of an Expansion RUM
10.3 Foreground ROMs and RAM Programs
10.4 Background RUMs
10.5 Resident System Extensions
10.6 External Commands
10.7 Examples

11 Interrupts

11.1 The Time Interrupt
11.2 External Interrupts
11.3 Nonmaskable Interrupts
11.4 Interrupts and Events
11.5 Interrupt Queues

12 Events.

12.1 EventClass.
12.2 Event Count.
12.3 Event Routine.
12.4 Disarming and Reinitializing Events.

13 The Machine Pack.

13.1 Hardware Interfaces.
13.2 The Printer.
13.3 Loading and Running Programs.

14 Firmware Jumpblocks.

14.1 The Main Jumpblock.

14.1.1 Entries to the Key Manager.
14.1.2 Entries to the TextVDU.
14.1.3 Entries to the Graphics VDU.
14.1.4 Entries to the Screen Pack.
14.1.5 Entries to the Cassette Manager.
14.1.6 Entries to the Sound Manager.
14.1.7 Entries to the Kernel.
14.1.8 Entries to the Machine Pack.
14.1.9 Entries to Jumper.
14.1.10 FurtherEntries.

14.2 Firmware Indirections.

14.2.1 Text VDU Indirections.
14.2.2 Graphics VDU Indirections.
14.2.3 Screen Pack Indirections.
14.2.4 Keyboard Manager Indirections.
14.2.5 Machine Pack Indirections.
14.2.6 Further Indirections.

14.3 The High Kernel Jumpblock.
14.4 The Low Kernel Jumpblock.


15 The Main Firmware Jumpblock.

16 The Firmware Indirections.

17 Kernel High Entries.

18 Low Entries to the Kernel.

19 AMSDOS ‘BIOS' Facilities

20 AMSDOS External Commands


Appendices

I Key Numbering.

II Key Translation Tables.

III Repeating Keys.

IV Function Keys and Expansion Strings.

V Inks and Colours.

VI Displayed Character Set.

VII Text VDU Control Codes.

VIII Notes and Tone Periods.

IX The Programmable Sound Generator.

X Kernel Block Layouts.

XI The Alternate Register Set.

XII Hardware and Hardware Variants.

XIII Hints, Tips, and Workarounds.

XIV Printer Translation Tables.

★ AUTHORS: Bruce GODDEN , Paul OVERELL , David RADISIC
★ NOTE: RÉF SOFT968

Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 405 millisecondes et consultée 460 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.