Difference between revisions of "Amstrad Whole Memory Guide - The machine pack"
(ocr'd page 19) (Tags: Mobile edit, Mobile web edit) |
|||
Line 1: | Line 1: | ||
Chapter 3 in the book [[Amstrad Whole Memory Guide]]. | Chapter 3 in the book [[Amstrad Whole Memory Guide]]. | ||
+ | |||
+ | Chapter 3 | ||
+ | THE MACHINE PACK | ||
+ | |||
+ | Broadly speaking, the Machine Pack is reponsible for the control of | ||
+ | hardware peripherals, but it will be convenient to include the main | ||
+ | initialisation processes under this heading, since they are largely | ||
+ | concerned with peripheral setting-up. | ||
+ | |||
+ | Several of the Machine Pack routines depend on the action of | ||
+ | other routines to set up data. To understand this data in full, | ||
+ | you need to read 'The Ins and Outs of the AMSTRAD CPC464', which | ||
+ | gives full details of the peripheral codes. Only the more | ||
+ | essential codes will be defined here. | ||
+ | |||
+ | Main Reset | ||
+ | |||
+ | At switch—on, or in response to instruction code &C7, location 0000 is | ||
+ | entered. At switch-on, lower ROM is enabled, but the ROM routines are | ||
+ | later copied to the corresponding RAM locations in this area, so the | ||
+ | enable state of the lower ROM is then unimportant. However, the first | ||
+ | action of the reset routine is to output &89 to the Video Gate array | ||
+ | on I/0 address 7FXX, and this enables lower ROM, disables upper ROM, | ||
+ | and also sets up Mode 1. There being no further room in the RST Area | ||
+ | the routine jumps to 0580 to continue reset action. | ||
+ | |||
+ | Interrupt is disabled, and &82 is output to F7XX. This sets the | ||
+ | PPI (Parallel Peripheral Interface) to output on ports A and C, | ||
+ | input on port B. Zero outputs to F4XX and F6XX clear ports A and | ||
+ | C, while an output of &7F to EFXX initialises the printer port. | ||
+ | Bit 7 is low, the other bits are high. | ||
+ | |||
+ | The CRT Controller is then set up. There are two alternative sets of | ||
+ | values for this, one for 50 Hz frame scan and the other for 60 Hz. The | ||
+ | set to be used is determined by reading port B, bit 4. If this bit is | ||
+ | true, 50 Hz values are used, while the 60 Hz values are used if the | ||
+ | bit is false, this being determined by the presence of Link 4 on the | ||
+ | main printed circuit board. | ||
== Scanned pages == | == Scanned pages == |
Revision as of 14:00, 25 September 2019
Chapter 3 in the book Amstrad Whole Memory Guide.
Chapter 3 THE MACHINE PACK
Broadly speaking, the Machine Pack is reponsible for the control of hardware peripherals, but it will be convenient to include the main initialisation processes under this heading, since they are largely concerned with peripheral setting-up.
Several of the Machine Pack routines depend on the action of other routines to set up data. To understand this data in full, you need to read 'The Ins and Outs of the AMSTRAD CPC464', which gives full details of the peripheral codes. Only the more essential codes will be defined here.
Main Reset
At switch—on, or in response to instruction code &C7, location 0000 is entered. At switch-on, lower ROM is enabled, but the ROM routines are later copied to the corresponding RAM locations in this area, so the enable state of the lower ROM is then unimportant. However, the first action of the reset routine is to output &89 to the Video Gate array on I/0 address 7FXX, and this enables lower ROM, disables upper ROM, and also sets up Mode 1. There being no further room in the RST Area the routine jumps to 0580 to continue reset action.
Interrupt is disabled, and &82 is output to F7XX. This sets the PPI (Parallel Peripheral Interface) to output on ports A and C, input on port B. Zero outputs to F4XX and F6XX clear ports A and C, while an output of &7F to EFXX initialises the printer port. Bit 7 is low, the other bits are high.
The CRT Controller is then set up. There are two alternative sets of values for this, one for 50 Hz frame scan and the other for 60 Hz. The set to be used is determined by reading port B, bit 4. If this bit is true, 50 Hz values are used, while the 60 Hz values are used if the bit is false, this being determined by the presence of Link 4 on the main printed circuit board.