Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Acorn Electron
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Development considerations and techniques=== [[File:ExileElectron.png|thumb|left|''[[Exile (1988 video game)|Exile]]'' is an example of a game where the developers left non-graphical data visible in the display buffer to gain additional memory space.]] Like the [[BBC Micro]], the Electron is constrained by limited memory resources. Of the 32 KB RAM, 3Β½ KB is allocated to the OS at startup and at least 10 KB is taken up by the display buffer in contiguous display modes. Although programs running on the BBC Micro can use the machine's [[MOS Technology 6522|6522]] chip to trigger interrupts at certain points in the update of each display frame, using these events to change the palette and potentially switching all colours to black, thus blanking regions of the screen and hiding non-graphical data that had been stored in screen memory, the Electron lacks such hardware capabilities as standard.<ref name="electronuser198801_blake" /> However, it was found to be possible to take advantage of the characteristics of interrupts that were provided, permitting palette changes after the top 100 lines of each display frame, thus facilitating the blanking of either the top 100 or bottom 156 lines of the display. Many games took advantage of this, gaining storage by leaving non-graphical data in the disabled area.<ref name="diskuser198810_gameplan" />{{rp|quote=You can use a colour interrupt to reduce the screen size by blanking out the top 13 or bottom 19 lines (other depths cause huge speed reductions).|pages=11}}<ref group=note>In this source, the "lines" appear to refer to character lines or multiples of 8 pixels, yielding 104 and 152 pixel lines respectively.</ref> Other games would simply load non-graphical data into the display and leave it visible as regions of apparently randomly coloured pixels. One notable example is Superior Software's [[Citadel (video game)|Citadel]].<ref name="electronuser198602_danes">{{ cite magazine | url=https://archive.org/details/ElectronUserVolume3/Electron-User-03-05/page/n7/mode/1up | title=Danes help produce new Electron titles | magazine=Electron User | date=February 1986 | access-date=16 October 2021 | volume=3 | issue=5 | pages=8 | quote="The program overspill appears as a fluctuating patterned strip at the bottom of the screen", said Payne, "It is the only way it could be released on the Electron". }}</ref> Although [[page flipping]] is a hardware possibility, the limited memory forced most applications to do all their drawing directly to the visible screen, often resulting in graphical [[Flicker (screen)|flicker]] or visible redraw. A notable exception is [[Players (publisher)|Players]]' ''[[Joe Blade]]'' series. A number of unusual techniques were employed by some developers to work around apparent limitations of the hardware. ====Firetrack: smooth vertical scrolling==== Although programs can alter the position of the screen in memory, the non-linear format of the display means that vertical scrolling can only be done in blocks of 8 pixels without further work. ''[[Firetrack]]'', released on a compilation by Superior Software,<ref name="electronuser198903_firetrack">{{ cite magazine | url=https://archive.org/details/ElectronUserVolume6/Electron-User-06-06/page/n4/mode/1up | title=Firetrack speeds in for the Electron | magazine=Electron User | date=March 1989 | access-date=28 February 2021 | volume=6 | issue=6 | page=5 }}</ref> exploits a division in the way the Electron handles its display{{snd}} of the seven available graphics modes, two are configured so that the final two of every ten [[scanlines]] are blank and are not based on the contents of RAM. If 16 scanlines of continuous graphical data are written to a character-block-aligned portion of the screen then they will appear as a continuous block in most modes but in the two non-continuous modes they will be displayed as two blocks of eight scanlines, separated in the middle by two blank scanlines. In order to keep track of its position within the display, the Electron maintains an internal display address counter. The same counter is used in both the continuous and non-continuous graphics modes and switching modes mid-frame does not cause any adjustment to the counter. ''Firetrack'' switches from a non-continuous to a continuous graphics mode part way down the display. By using the palette to mask the top area of the display and taking care about when it changes mode it can shift the continuous graphics at the bottom of the display down in two pixel increments because the internal display counter is not incremented on blank scanlines during non-continuous graphics modes.<ref name="firetrack">{{ cite web | url=http://electrem.emuunlim.com/techinfo.htm#firetrack | title=Vertical bipixel hardware scrolling | website=Acorn Electron Technical Documentation | date=15 August 2003 | archive-url=https://web.archive.org/web/20060206155259/http://electrem.emuunlim.com/techinfo.htm#firetrack | access-date=5 March 2021 | archive-date=6 February 2006 }}</ref> ====Exile: sampled speech==== ''[[Exile (1988 video game)|Exile]]'' turns the Electron's one channel output into a digital speaker for [[pulse-code modulation|PCM]] output. The speaker can be programmatically switched on or off at any time but is permanently attached to a hardware counter so is normally only able to output a [[Square wave (waveform)|square wave]]. But if set to a frequency outside the human audible range then the ear can't perceive the square wave, only the difference between the speaker being switched on and off. This gives the effect of a simple toggle speaker similar to that seen in the 48 KB Sinclair [[ZX Spectrum]]. ''Exile'' uses this to output 1-bit audio samples. ====Frak! and Zalaga: polyphonic music==== As part of their [[copy protection]], illegal copies of Aardvark Software's ''[[Frak!]]'' and ''[[Galaga|Zalaga]]'' would cause a pseudo-polyphonic rendition of Trumpet Hornpipe, the [[Captain Pugwash]] theme tune, to play endlessly rather than loading the game properly (Pugwash being a pirate). On the Electron version of Frak!, the tune was the main theme from "[[The Benny Hill Show|Benny Hill]]" ([[Boots Randolph]]'s "[[Yakety Sax]]"). The [[polyphony]] was achieved via [[Arpeggio|fast note-switching]] to achieve the necessary chords.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Acorn Electron
(section)
Add topic