1.1 --- a/ULA.txt Sun Feb 26 23:11:44 2012 +0100
1.2 +++ b/ULA.txt Sun Feb 26 23:12:35 2012 +0100
1.3 @@ -120,6 +120,42 @@
1.4 See: Acorn Electron Service Manual
1.5 http://acorn.chriswhy.co.uk/docs/Acorn/Manuals/Acorn_ElectronSM.pdf
1.6
1.7 +Interrupts
1.8 +----------
1.9 +
1.10 +The ULA generates IRQs (maskable interrupts) according to certain conditions
1.11 +and these conditions are controlled by location &FE00:
1.12 +
1.13 + * Vertical sync (bottom of displayed screen)
1.14 + * 50MHz real time clock
1.15 + * Transmit data empty
1.16 + * Receive data full
1.17 + * High tone detect
1.18 +
1.19 +The ULA is also used to clear interrupt conditions through location &FE05. Of
1.20 +particular significance is bit 7, which must be set if an NMI (non-maskable
1.21 +interrupt) has occurred and has thus suspended ULA access to memory, restoring
1.22 +the normal function of the ULA.
1.23 +
1.24 +ROM Paging
1.25 +----------
1.26 +
1.27 +Accessing different ROMs involves bits 0 to 3 of &FE05. Some special ROM
1.28 +mappings exist:
1.29 +
1.30 + 8 keyboard
1.31 + 9 keyboard (duplicate)
1.32 + 10 BASIC ROM
1.33 + 11 BASIC ROM (duplicate)
1.34 +
1.35 +Paging in a ROM involves the following procedure:
1.36 +
1.37 + 1. Assert ROM page enable (bit 3) together with a ROM number n in bits 0 to
1.38 + 2, corresponding to ROM number 8+n, such that one of ROMs 12 to 15 is
1.39 + selected.
1.40 + 2. Where a ROM numbered from 0 to 7 is to be selected, set bit 3 to zero
1.41 + whilst writing the desired ROM number n in bits 0 to 2.
1.42 +
1.43 Shadow/Expanded Memory
1.44 ----------------------
1.45