Introduction
------------
Why do we need a new technical manual?
Accompanying Disk
Memory Handling
---------------
Memory Paging
The HMPR and LMPR paging registers
Using External Memory
Using External Memory with the Ryan interface
Using the MultiROM's Memory (RAM and ROM)
Reading memory for diagnostic purposes
Working with paging
Memory Allocation and Management
The BASIC memory map
Page allocation tables and their use
The Heap
BASIC addresses and their relation to physical addresses
Proposed address representation standards
Miscellaneous
Machines with less than 512K of internal memory
Memory hardware and suppliers
256k expansion
The 1Mb
The Ryan
The Microbe
Programming within the SAM Environment
--------------------------------------
Introduction
Optimizing Z80 code
Self-modifying code
Instruction timings
Interrupt routines
Keeping BASIC happy
Division and Multiplication
Graphics Methods and Techniques
-------------------------------
The Graphics Hardware
The Video Memory Paging Register (VMPR)
The Colour Look Up Table (CLUT)
Screen memory mapping
Border Colours and turning the screen off
Reset screens and how to generate them
Hardware oddities (display and z80 timing)
Graphics Handling Routines
Calculating screen addresses from co-ordinate and character positions
Simple graphics drawing routines
Sprites
Clipping
Scrolling the screen
Using colour cycling to achieve effects
Using a back-screen and screen flipping
Anti-Aliasing
Working in Screen Modes 1 and 2
Graphics in the Border area
Split-Mode screen displays
Converting between screen modes
Colour Fading
Representing 8 bit R, G, B values on the SAM
Representing the SAM's palette in 8-bit R, G, B
Calculating luminance values
Using BASIC's Graphics Routines
Using the Palette in BASIC
Clearing the screen
PUT
GRAB
SCROLL and ROLL
PLOT
DRAW
DRAW TO
CIRCLE
FILL
BLITZ strings
Graphics Software and Suppliers
FLASH
SAM Paint
Anti-Aliaser
Sound Methods and Techniques
----------------------------
The Phillips SAA1099 Sound Chip
An Overview
Known hardware bugs
Synthesized (Chip) Sound
Catering for both stereo and mono output users
Avoiding clicks
Fast playback routines
Vu-bars (frequency meters)
Converting Spectrum AY chip music to the SAA1099
E-Tracker File Format
Digital (Sampled) Sound
Producing digital sound on the SAM
Multiplexing channels
Synchronising the sound with the display
Synchronising the sound with the Comms interface
Quazar Surround
Solar Flare's Entropy MOD player
Any other sound hardware (Stefan, can you help with this one?)
Sound Composing Software and Utilities
The Sound Machine
E-Tracker
SAM BASIC, MasterBASIC and the SAM Coupe BIOS
---------------------------------------------
ROM Routines
Vectors
Floating Point Calculator
BASIC data structures
Command tokens (should these be in the appendix?)
SAM Graphical User Interfaces
-----------------------------
Driver
Programming the interface
Driver version 2.0
GAIA (MultiROM)
Programming the GAIA libraries for your own use.
GAIA and Driver compatibility
Games Writing Utilities
-----------------------
SCADS
Games Master
DOS, Disks and Disk Controllers
-------------------------------
Floppy Drives
Standard SAM file structure
E-DOS File structure
SAM DOS Hook Codes and idiosyncrasies
MasterDOS Hook Codes
E-DOS Hook Codes
Using the hook codes
Loading DOS and the Boot Sector
Viruses on the SAM
VLSI 1772-02 disc controller operations
Invisible drive controller upgrade theory
Fitting a High Density drive to your SAM
Hard Drives
SAM Hard Drive partition table specification
HDOS info (West Coast / Nev Young)
EDOS info (Entropy DOS)
Copy protection theory and practice
Case study (Splat!)
Case study (Sphera)
Case study (Prince Of Persia)
More exotic flora and fauna
SAM Systems Variables
---------------------
SAM BASIC
MasterBASIC
SAMDOS
MasterDOS
E-DOS
The MultiROM
The Driver
SAM Hardware and Peripherals
----------------------------
The SAM Coupe itself
The keyboard
Using the Lightpen port for synchronisation
The
Faults in the basic SAM Coupe design and how to fix them
An overview
PSU interference
Better power supply decoupling
8MHz clock signal faults and their implications
The Comms Interface
Programming the Parallel side of the interface
The IM26C91 UART chip
Generating Interrupts
Modifications to provide necessary signals
Programming the Serial side of the interface
Detecting the presence of the serial chip
Bugs in the Comms Interface hardware
The SAM Disk Interface (SDI)
The SAM Bus
Programming the real-time clock controller
Detecting the presence of the clock chip
Bugs in the SAM Bus hardware
The Mouse Interface
Reading the SAM Mouse without the driver
Detecting the presence of the Mouse interface
The Messenger
What it does
The SAM Elite
Modifications to the original SAM Coupe specification by West Coast
SAM Basic ROM v3.5 -- changes to the spec?
The MultiROM
Technical details
The Ryan
Technical details
Answers to Exercises
Appendices and schematic diagrams
SAM Specifications
SAM Mouse Interface schematic
SAMBus schematic
SAM Comms interface
SAM Parallel printer interface
SAM SDI
SAM ROM/RAM board
MultiROM board
Busmaster
Index
-----------------------
I, for one, have no objection to this being on the net as well as a
saleable thing. I want to sell it non-profit, and I can get cheap, high
quality (600dpi) printing done for me, as well as binding...
Simon
--
Email:[EMAIL PROTECTED], [EMAIL PROTECTED], [EMAIL PROTECTED]
Snail:1 Dovey Close, Astley, Tyldesley, Manchester, M29 7NP, UK
Tel: (01942) 886084 Fax: (01942) 886084 (ring voice first to confirm!)
WWW: (Newly updated) http://jumper.mcc.ac.uk/~simonc