> Atom/src ) Load System Kernel and System Basic $ *EmulateTube Atom () (' or *Atom () within Tube 2: &8000:ș "OS_GetEnv"A$:A$,5)<>"B6502":"B6502"+A$,A$," ")) F :" at line ";: P: Zkernel$="Kernel65" d:sbasic$=":Software.BBCBasic.System.SBASIC2":brk%=&3403 nsave$ ="Atom65" xtitle$ ="65Tube" assem : kernel$="KernelCP" :sbasic$=":Software.BBCBasic.System.SBASIC2":brk%=&3403 save$ ="AtomCP" title$ ="6502 CoPro" assem  : assem IOADDR=&FEE0  mcode% &5000 P=0 1 P%=&400:O%=mcode% [OPT P*3+4  .exec% "JMP Start:BRK:BRK:BRK ,EQUB &42:EQUB copy-exec% 67EQUB &10:EQUS "Atom/System Environment for "+title$ @&EQUB &00:EQUS "0.10 (12-Feb-2012)" J .copy T&EQUB &00:EQUS "(C)J.G.Harston":BRK ^EQUS 12-title$,0) h .ctrl r9EQUW &100:EQUD 0:EQUB &FF :\ Load to file's address | .Start LDA #1:LDX #&00 4LDY #0:JSR &FFDA :\ Find command line  .cmdlp  TYA:PHA LDX #0:LDY #0 6LDA #5:JSR &FFF1 :\ Fetch byte from I/O %INC &00:BNE next:INC &01:BNE next INC &02:BNE next:INC &03  .next  PLA:TAY 0LDA &04:STA &100,Y :\ Store locally 2INY:CMP #13:BNE cmdlp :\ Loop until LDA &100:CMP #13 .PHP:BEQ nofile :\ No filename LDX #ctrl 255 LDY #ctrl 256 &,LDA #&FF:JSR &FFDD :\ Load file 04LDA ctrl+6:STA entry+0 :\ Set entry address :LDA ctrl+7:STA entry+1 D .nofile NLDA #12:JSR &FFEE XSEI b+LDA #buffer 255:STA &00 :\ src=buffer lLDA #buffer 256:STA &01 v2LDY #&00:STY &02 :\ dest=&F800, Y=0 LDA #&F8:STA &03  .loop1  LDA &03 7CMP #IOADDR 256:BNE copymos :\ Skip IO addresses 5CPY #IOADDR 255:BCS skipmos :\ at &FEF0-&FEFF  .copymos +LDA (&00),Y:STA (&02),Y :\ copy MOS  .skipmos INY:BNE loop1 INC &01:INC &03:BNE loop1 8PLP:BNE enter :\ file loaded, enter it 2LDA entry+0:STA &EC :\ set entry point HLDA entry+1:STA &ED R8JMP (&FFFC) :\ start Atom/System MOS \ .entry fEQUW &A000 p .buffer z]  "Load "+kernel$+" "+~O% % "Load "+sbasic$+" "+~(O%+&800) B?(O%+&800+brk%)=0:?(O%+&800+brk%+4)=0: Remove BRK range check 5A$=save$+" "+~mcode%+" "+~(O%+&4800)+" 400 400" "Saving ";A$; "Save "+A$: