I've tried to tidy up some porting notes into proper documentation, but can't get my mind around it, so I'll write it up as a commentary. If you're building a homebrew project, messing about with BASIC is going in the wrong direction. If you're building a home-brew system, the correct thing is not to port BASIC, but to port the MOS API, and simply drop a pre- existing BASIC binary straight into the memory map. The bare minimum your MOS needs to do is: BRKV, WRCHV: vectors for BRK and WRCH BRK: point &FD/E to error message, jump via BRKV OSASCI, OSNEWL, OSWRCH, WRCHV: print characters OSWORD 0: read input line OSBYTE &83/&84: read bottom of memory/top of memory &0000-&005F: zero page workspace for BASIC &0400-&07FF: fixed workspace for BASIC On startup: initialise, and enter BASIC at its entry point with A=1 All other API calls can (and must) simply return unchanged until and if you choose to implement them. As an example, the Mini65 MOS squeezes a basic text I/O MOS into 512 bytes. MiniMOS text I/O using 6850 ACIA: mdfs.net/Software/Tube/6502/Mini65 MiniMOS source: mdfs.net/Software/Tube/6502/Mini65.src The SerialIO MOS squeezes a basic I/O MOS into 2K at &F800-&FFFF that can be used as a simple text I/O or implement filing functions with a TubeHost program at the other end of the serial link. 6502 Serial MOS using 6850 ACIA: mdfs.net/Software/Tube/6502/Serial65 6502 Serial MOS source: mdfs.net/Software/Tube/6502/Serial65.src TubeHost for various platforms: mdfs.net/Software/Tube/Serial An example of using these is the un-modified BASIC 2 with a MOS for the 6502 BenEater homebrew computer: BASIC 2 with MiniMOS text I/O using BenEater 6551 ACIA: mdfs.net/Software/Tube/6502/BenEater/BenBasic2A BASIC 2 with Serial MOS using BenEater 6551 ACIA: mdfs.net/Software/Tube/6502/BenEater/BenBasic2B Additionally, there's an experimental build I've been working on over time on and off: mdfs.net/Software/Tube/6502/BenEater/BenBasicC0 This is experiemental development to see if I can strip out a small amount of functionality from BASIC to squeeze it into memory at &C000 and leave enough memory at &FD00 upwards for a tiny MOS, to allow the whole build to fit into a single 16K ROM. This test build strips out AUTO, RENUMBER, DELETE and ENVELOPE to allow enough space for the BenEater text I/O MOS to squeeze in. So, I'd strongly advise you to not fiddle with BASIC, but just use the unchanged BASIC2 or BASIC3 binary in memory at &8000-&BFFF or the HiBASIC2 or HiBASIC3 binary in memory at &B800-&F7FF, and concentrate on implementing the MOS API. Start with something like the Serial65 client or the Mini65 client. See here for binaries of BASIC: mdfs.net/Software/BBCBasic/BBC/Port.htm See here for source and binaries for 6502 client MOSes: mdfs.net/Software/Tube/Serial/ All the best.