Om "LASERSHOW" "Gör det så enkelt som möjligt och inte enklare". Albert Einstein LASERSHOW planerade jag under flera år och den kunde förverkligas bl.a.tack vare en god kontakt med konstnären Leif Bolter. Han gav synpunkter på det som alltid skulle vara närvarande och synligt och föreslog en tvådimensionell konstruktion i glas med ingjutna linjer för grundbilden, som jag tänkte skulle föreställa en ögonblicksbild av ett plant snitt genom magnetosfären i nordsydlig riktning genom jordens centrum. På glaset skulle sedan en laserståle rita dynamiska förlopp associerade till norrskensfysik. Månen skulle också vara med och tjänstgöra som storleks- och avståndsreferens. Solen fick inte plats, men dess placering kan tänkas cirka 2 km från glasets vänstra kortvägg. Leif Bolter genomförde glasskulpturen med min ritning som förlaga. På den stationära glasmagnetosfären finns normalt den vandrade "amöban", som indikerar att den dynamiska delen av LASERSHOW är vid liv. Denna del består av mekaniskt upphängda speglar, som styrs på ett aktivt sätt så att snabbast möjliga vinklingsförändring med noggrann positionering kan erhållas. Styrningen hanteras av en transputer, som håller två kurvor i minnet samtidigt. De kan också ritas ut samtidigt och följs av var sin ny kurva utan hoppande och störande effekter. En laserstråle reflekteras av speglarna och styrningen består i positionsförändringar med tidsförseningar samt tändning och släckning av strålen. Tidsfördröjningen simulerades från början med en modifierad bezierkurvgrafik skivet i Smalltalk. PRI PAR --{{{ plottProcess [2]INT offset,offset0,offset1: [100][3]INT thePicture0: [100][3]INT thePicture1: INT N0,N1,any: BOOL onlyOne: [10]INT buffer: --{{{ plotPicture() PROC plotPicture() SEQ SEQ i=0 FOR N0 INT x,y: SEQ x,y:=offset[0]-(thePicture0[i][0]+offset0[0]), offset[1]-(thePicture0[i][1]+offset0[1]) IF x>4095 x:=4095 0>x x:=0 All programmering i LASERSHOW har gjorts i OCCAM utan operativstöd. --This for the booting system with B018 --15.11.1990 -- Channel 0 on B018 is connected to target -- Channel 1 on B018 is connected to PC-system -- Reset and Analyse are connected to PC-system -- SubReset and SubAnalyse are connected to target -- Target is: -- (T800 4Mbyte) + 4*T800 +(T800 32 Kbyte) + T222 + T222 CHAN OF ANY ToRotProj,FromRotProj, ToScanner,FromScanner, ToMouse,FromMouse, ToCalculator,FromCalculator: [3]CHAN OF ANY ToCalculators,FromCalculators: PLACED PAR ... mainShow :3423 ... calCulation :3424 ... scannerRotProj :3425 ... scanner :3426 ... mouse :3427 De underliggande fysikaliska modellerna är alla tredimensionella. Integerationsalgoritmer utförs i 64-bits precision vad gäller satellitrörelser och 32-bits precision vad gäller laddade partiklars rörelser. Beräkningarna utförs av fem transputrar, som vardera presterar 2 MFLOP. LASERSHOW hade institutets kraftfullaste beräkningsenheter när den kördes igång 1990. De tredimensionella resultaten sänds till en modul med en transputer som roterar och sedan projicerar resultatet till ett plan. Detta resultat sänds sedan till den transputer som är direkt. kopplad till avlänkningsspeglarna. I LASERSHOW finns text, gjord i skrivstil med små bokstäver. Det visade sig att detta var enkelt och väl realiserbart. De enskilda bokstäverna är gjorda så att de går att länka ihop snyggt. I Smalltalk skapades speciella editeringsklasser för att skissa fonterna, vars form har tagits från en välskrivningsbok för småskolan. Man kan inte utan flimmer visa mer än fyra bokstäver åt gången. Med hjälp av menyn text kan man studera och eventuellt editera texterna. Normalt styrs LASERSHOW med en hemmagjord lasermus, men den kan också styras från en PC via en transputerlänk. Lasermusen är helt konstruerad vid IRF och består av en enkel bevakningsvideokamera med ett rött filter framför objektivet. Det röda filtret släpper igenom det ljus som kommer från en kommersiell laserpekare av helium-neon-typ, som används för pekning och styrning. Videosignalen, som kommer från kameran, går direkt till en enkel egentillverkad transputermodul. Den innehåller förutom en transputer en komparator, en synkseparator och två räknare med var sin flipflop för aktivitetsstatus. Carl-Göran Niemi bidrog med transformeringen av videosignalen till h-, v-synkpulser och luminans till separata TTLsignaler. Räknarna avläses från transputern, som därefter sänder positionskoordinater till beräkningsenheten. Med hjälp av texterna kan man söka sig fram i menyer och välja aktiviteter.Analoga värden kan också matas in via laserpekaren. De 8 transputrarna är kopplade till ytterligare en transputer, som når ett EEPROM där hela programmet är lagrat. Denna transputer kan nås från en PC, men normalt laddar den själv upp systemet efter strömavbrott och transputersystemet är således helt sjävständigt. Det tog mig några månader att förverkliga hela systemet men principerna hade som sagts funnits i bakhuvudet något år!