Top    a_paulfellows

title Transcript of talk by Paul Fellows at RISC OS User Group Of London (ROUGOL): ARX, Arthur and RISC OS
date 15th October 2012
source Available from http://www.rougol.jellybaby.net/meetings/2012/PaulFellows/

1I was hauled in , in_front_of the board of directors at Acorn , and they said “ the hardware is being made and we have got no software , you guys are n't doing very much at Acornsoft , can you make us a BBC like operating system , you 've got 5 months ? ” , as that 's when the hardware is going to hit the streets .
2And like an idiot I said “ yes ” , we had n't got very much to do .
3The reason they came to us was because we 'd done the graphics extension ROM for the Master , we 'd been part of the recent machine that had gone out the door and because we 'd done the fancy BASIC interpreter that could access more memory , thus proving we could do hard things , and done all the languages you could possibly want for the BBC Micro , so we really did n't have much else to do .
4Who were we ?
5It was the Acornsoft languages group , myself , I was the team leader , I was the fool that said “ yes we can do it ” .
6I got to write the I2C drivers , actually I was given some I2C drivers by John Biggs , who 's at ARM today , they were written in Modula2 which had been ripped off out_of the ARX implementation , he said “ here , this is how you do it , make the Real Time Clock work , that 'll be fine , just test it for me will you ? ” .
7Not having a compiler that worked on the nascent version of Arthur that we had at the time , I transliterated it all into assembler , it went 400 times faster and it got slightly upset that I was driving the bus too fast .
8I also did things like the colour palette .
9Tony Thompson , who had done that implementation of BASIC 64 , he got to do the core of the operating system , so the real guts of Arthur itself .
10That brought it out_of reset , powered it up , organised all the memory and so_forth .
11We had a really interesting time with part of that , we had one of the machines that we just could not get this thing to boot reliably . You could boot it , turn it off , reboot it and sometimes it would work and sometimes it would n't . It turned out , it would boot fine if you left it long enough , but if you did n't turn it off for very long then it did n't reset properly , and this was because the fan on the board was still spinning and the back EMF on the fan was enough power to keep the ARM running .
12And that 's why you 've got an ARM in your phone today , it would take no power to keep a 3 micron ARM with 25000 transistors would run for 30 seconds off the energy stored in the fan .
13Stuart Swales , wrote fileswitch and I think the Heap manager as well , we could n't have done it without Stuart , he just fixed everything .
14Richard Manby , graphics extension ROM author , did the graphics and in RISC OS 2 he went on to do Draw which is really quite a fantastic program .
15Then we 've got our ace games programmer out_of semi_-_retirement where he 'd been out writing games for the beeb with no market for them , Tim .
16Tim works at Broadcom these days , he did the text , the sound , the keyboard , the serial .
17We drafted in a couple of other guys from Acorn as the team grew .
18We got Nick Reeves who did the disk filing system stuff and Brian Cockburn , that was the team , just those guys .
19Tony is at ARM , Stuart has retired , Richard Manby works at ANT in Cambridge on embedded browsers , Tim works on chips with Sophie at Broadcom , things like Raspberry Pi core chips and related work , Nick Reeves is at ARM and Brian is at Amino .
20Amino is a company that I started with Martin Gilbert in 1997 , Martin designed the Master 128 .
21If you look inside one of these Amino set top boxes you find there 's a boot ROM in the NOR flash , and a filing system on the NAND flash , and the boot ROM does n't half look like the core operating system and a load of separate relocatable modules , it boots up and runs <ast> exec !
22Boot and that 's inside the NAND flash which goes ‘ run Linux ’ .
23I think we sold 4.5 million of those set_-_top_-_boxes , which is more instances of an operating system than Acorn ever managed .
24Things got serious when I got some hardware on my desk , this is the first piece of hardware I got ( A500 second processor card ) , you can see the four core chips , the ARM , MEMC , VIDC and IOC , in their square flat_-_pack holders , the RAM over there , some operating system software of some sort in these EEPROMs here , and the TUBE interface .
25So this was plugged into , via a tube interface , a BBC Micro , so it was a giant second processor ( as it says on the board “ A500 second processor ” ) . This was the development board that we had , we first had one and gradually got to the point of having one each to do the development work on . You could attach a keyboard to it , graphics output from it to a monitor , so gradually the functionality of Arthur came to life and you could migrate more and more of the IO features over onto the board from the BBC Micro . Of course this thing could never run entirely standalone it always needed that host micro to get it going .
26We got everything going , the sound , graphics , the memory management and everything running on here as the initial systems .
27There 's still quite a few of these boards around and they still work .
28The first stand_alone machine , the A500 , which is very confusing because they 're both called A500 , but the other one was the A500 second processor .
29There 's a photo of said machine with its lid on and lid off .
30I thought it was quite smart , this design with this plastic moulding on the front and the keyboard that plugged in .
31I think this is actually my computer , I can tell it 's mine because it 's got red stickies on some of the function keys , to change the names of what those buttons did , because the keyboard was designed for ARX and had some weird buttons on it that nobody ever knew what they were supposed to do , so we stuck some labels on , I think it was Tipex on this one to make it more appropriate .
32It 's booted up there running what seems to be RISC OS 2 to me .
33Inside you 've got the floppy drive , hard drive , podule bus , you 've all seen this , it 's very similar to any other Archimedes .
34There 's the fan that you have to stop in_order to reboot it .
35Then the real machines came along , the Archimedes , they changed one important thing , the keyboard .
36A different style of keyboard and keyboard connector .
37I do n't quite know where the keyboard came from , but there was obviously a micro in there which would chuck it ( the keyboard data ) to us down the serial lead .
38One of my funny stories is trying to debug the interface between Tony 's software and the keyboard , myself and Stuart and Tony and Bruce ( Brian Cockburn ) were there all night trying to get this damn thing to work , because the guys who made the keyboard had got this fantastically useless protocol that they 'd come up with .
39The keyboard sent you 0xFF , you replied 0xFF , then it sent you 0xFF again , you replied 0xFF , then it sent 0xFE , and you were supposed to reply 0xFE . The only trouble was , when you received an 0xFF from it , you did n't know if it was the first one or the second one .
40We spent ages trying to create some code on the ARM end make it reliably boot up and start the keyboard properly .
41Eventually , at about 1:30 in the morning I suggested we just send it something illegal , so we sent it F0 , well you would would n't you ?
42The keyboard took that and went “ oh I do n't know how to deal with that , I 'll start again ” and sent 0xFF , but this time we knew it was the first one , and it 's still like that today , because we never could get to the bottom of why it did n't work .
43So that 's it with its lid off , all the rest of the bits that were hidden under the drives and so forth .
44There 's an awful lot of components on there by today 's standards , I think it broke the CAD program because there were more than 512 , the CAD program that the guys were trying to use to design the hardware could n't handle it .
45Software wise , the core operating system was made to look like the BBC MOS , with relocatable modules made to look like those sideways ROMs , all the service calls in the Beeb are mirrored by those that go chaining through , but you do n't have to do hardware paging to go from one to the other .
46Underneath all versions of RISC OS still have a BBC inside them and in fact if you turn on one of my Amino set top boxes , with the debug lead in , it does n't half look like that .
47In 2007 I finished my association with Amino set top boxes and did another company with Adrian Chritchlow and some other guys who were from the Acorn world , and we built something called AlertMe.com in Cambridge which does home gateways , which are connected to the internet , have a modem in them and through a collection of Zigbee based sensors have got a burglar alarm function .
48There 's a programmable infra_-_red sensor and some magnetics ones and key_-_fob and so forth and you can do it really well .
49Those little sensors have all got a small processor with 5K RAM and 128K ROM and they do n't half look like these inside as_well .
50All the Amino set top boxes and all the AlertMe sensors are the great grandchildren of all of this .
51I kept the faith , I 've built another 5 million units that have got an operating system just like this one in them that probably no one has ever really heard of .
52Why change a good plan eh ?
53I want to talk a little about my friend Neil , sadly no longer with us .
54By that stage we were here , Arthur 1.something that fired up and looked like that .
55And it did what the management had asked us to do , it built a BBC Micro .
56But Neil came along and said “ I 've finished writing these games ” , that was his best game ever ‘ Planetoid ’ , defender , a great game . He got interested in writing a font manager to run on Arthur , so he wrote two , a bitmap one which was all well and good but a_bit clunky and horrible . Then he wrote an outline font manager later that was so much nicer , which is the one that 's still in there today I think . And he wrote a Window Manager , I think he just wrote that because he wanted to , the addition of these two modules transformed Arthur from that command_-_line world to a desktop based system .
57There 's a cautionary tale behind this , Richard Manby wrote this ( Arthur Desktop ) , in BASIC as a demonstration of the Window Manager and what it could do , using the bitmap fonts and so_forth , the outline font manager was n't ready at this point . As a piece of demo_-_ware it escaped into the wild , they burnt it into the ROM and it 's what it boots up with , but it was a demonstration of how you can write programs to use the window manager , but never underestimate the marketing department , they 'll get you every time , if you write a demo , they 'll sell it .
58How many times have we all been bitten by that one ?
59So after we 'd written that , the great show_-_down meeting happened , as it says here , the ARX and the ARm on THURsday showdown meeting .
60In the boardroom at Acorn , in the morning the team from Paolo_-_Alto turned up with their 4MB A500 with a hard_-_drive running ARX to do a demonstration of how far they 'd got and what a wonderful thing it was . But big mistake , they 'd told us what their demo was going to be before hand . So they 'd got a ticking clock running , and they said “ and you can click on another one and run several of these at once , you wo n't be able to do that on Arthur as it ca n't multitask , look ! ” , they clicked on three or four of them and got them running .
61When the fourth one started the system started to engage virtual memory and started swapping , on a 4MB machine and the hands on the clock started ticking once every 16 seconds .
62So they did their demonstration and we turned up , Tim Dobson had written a clock program , we turned up with an A305 with 256KB RAM , an Arthur desktop and a ticking clock program , and we ran 16 of them which ticked smoothly , and ARX got cancelled the next day .
63It ( ARX ) was hopeless , there was no way that we ( Acorn ) could afford to go to market with a machine that needed 4MB of RAM and a hard drive , in those days , and even_then was going to be that slow .
64We were absolutely going to have to launch it with the smallest amount of RAM and no hard drive .