ô > TubeSwitch ô TUBEOFF and TUBEON ô by Graham Bell (ô for BBC+2nd Processor 2ô (C) The Micro User <: Fosbyte=&FFF4 Posargs=&FFDA Ztubechip=&FEE0 dthsloop=&32 n table=&A8 x Þcode&FF ‚: Œô *** TUBEOFF *** –òclear(code)  ãpass=0¸3ˆ3 ª P%=code ´: ¾ [OPT pass È)LDA &27A \ read Tube presence flag Ò'BPL exit \ Tube already disabled ÜLDA &FEE0 \ check if Tube æ"BPL tubeok \ hardware present ðBRK úOPT ¤equb(144)  OPT ¤equs("No Tube present") BRK : " .tubeok ,*LDA &28C \ get current language ROM 6 CMP #&FF @!BNE restart \ branch if valid JBRK TOPT ¤equb(249) ^$OPT ¤equs("No language in host") hBRK r: | .restart †PHA *LDA #&00 \ reset tube presence flag š STA &27A ¤ LDA #&8F ® LDX #&37 ¸!JSR osbyte \ initialise ROMs Â*LDA #&00 \ get filing system number ÌTAY ÖJSR osargs à(TAY \ reselect filing system ê LDA #&8F ô LDX #&12 þJSR osbyte PLA TAX +LDA #&8E \ re-enter current language &JMP osbyte 0 .exit :RTS D] Ní Xñ'' b4ç¤sum(code,P%)<>&2929:ñ"Code error in TUBEOFF":à lGòoscli("SAVE TUBEOFF "+Ã~code+"+"+Ã~(P%-code)+" FFFF0900 FFFF0900") v: €ô *** TUBEON *** Šòclear(code) ”ãpass=0¸3ˆ3 ž P%=code ¨: ² [OPT pass ¼)LDA &27A \ read Tube presence flag Æ&BMI exit \ Tube already enabled ÐLDA &FEE0 \ check if Tube Ú"BPL tubeok \ hardware present äBRK îOPT ¤equb(144) ø OPT ¤equs("No Tube present") BRK  :  .tubeok  LDA #&14 \ explode font * LDX #&06 4 LDY #&00 >JSR osbyte H(LDA #&FF \ set tube presence flag R STA &27A \ LDA #&8F f LDX #&37 p!JSR osbyte \ initialise ROMs z*LDA #&8F \ Tube main initialisation „ LDX #&FF Ž LDY #&00 ˜JSR osbyte ¢*LDX #&FE \ Tube post initialisation ¬ LDY #&00 ¶JSR osbyte À*LDA #&00 \ get filing system number ÊTAY ÔJSR osargs Þ(TAY \ reselect filing system è LDA #&8F ò LDX #&12 üJSR osbyte : )LDA #&7F \ write to Tube to signal ".wait \ end of ÿ routine $BIT tubechip+2 . BVC wait 8STA tubechip+3 B&JMP thsloop \ go to Tube poll loop L .exit VRTS `] jí tñ'' ~3ç¤sum(code,P%)<>&2F03:ñ"Code error in TUBEON":à ˆFòoscli("SAVE TUBEON "+Ã~code+"+"+Ã~(P%-code)+" FFFF0900 FFFF0900") ’à œ: ¦Ýòclear(memory) °êa% º ãa%=0¸&FF Äa%?memory=0 Îí Øá â: ìݤsum(start,end) ö êa%,b% a%=0  ãb%=start ¸ end-1  a%=a%+?b% í (=a% 2: <ݤequb(byte) F ?P%=byte P P%=P%+1 Z =pass d: nݤequs(string$) x$P%=string$ ‚P%=P%+©string$ Œ =pass –:  Ýòoscli(string$) ª êX%,Y% ´ ÞX%&FF ¾ Y%=X%256 È$X%=string$ Ò Ö&FFF7 Üá ÿ