XaiJu
beneater
beneater

patreon


MSBASIC for the 6502 computer

In this video, I adapt Microsoft BASIC to run on the 6502! Hopefully it all makes sense—there is a lot going on here! This video today is definitely a draft. At a minimum I intend to put the final working code from this video up on GitHub and point to it at the end of the video.

But as always, thanks for your continued support! Let me know if you see anything in the video that could be less confusing (hopefully without redoing the whole thing!) or any editing glitches, etc.

Thanks again!

-Ben

MSBASIC for the 6502 computer

Comments

So glad you posted this, I encountered the same problem and wasn't sure what that file was. Thank you!

Morgan

I agree! I have been adding graphics and sound commands to EhBasic for my BE6502 + Worlds Worst Video card and I'd love to port them over to Ben's MS Basic! I have not looked much, but I don't really see anyone out there talking about what you have to do exactly to add your own commands to 6502 MS Basic. I think it would be a great topic that would be fun for the community. https://github.com/Fifty1Ford/BeEhBasic

NormalLuser

I've been following along since the beginning. I wonder if a future video might be on adding instructions to the MSBasic implementation you demonstrated. I'd like an instruction to link to an assembly routine to output a string to the 2x16 LCD. Or an instruction to call an assembly language routine to turn on and/or read PIA I/O (...other thank PEEK/POKE). I cut my teeth on an Apple II 40+ years ago. It has been a good renewal to follow along, buy the kit and design and fab a PCB based on your design. Much thanks Ben. I've enjoyed many hours of tinkering following your videos.

Mike Malpass

One note, for me, when I clone the msbasic repo it does not contain the file longbranch.mac. I had to get it from the ca65 repo and copy it into all the files from the msbasic cloned directory to move forward as described in the video. Fabulous wok Ben.

Kevin McQuown

Very impressive as usual. Microchess next? I did it a few years ago. if a non programmer like me can get it working, it will be snap for you. This would make a great video. A few years ago, I built your 6502 kit and had a blast. Working with another person I built a 6502 on a PCB with a little more IO and wires that didn't come loose. We managed to get a version of microchess working on it. That was really exciting. The project is here: https://github.com/tonylweil/6502 The microchess code is here: https://github.com/tonylweil/6502/tree/master/Software/load/16_microchess

Tony Weil

Excellent! On to windows 3.1?

Richard

I may have misremembered, but wouldn't calling MONRDKEY (aka CHRIN) from ISCNTC remove the character from the input? Wouldn't this then affect the INPUT and GET commands?

Stefano Nicolini

Maybe also consider adding some kind of explanation/acknowledgment that the supplied functions such as MONRDKEY need to meet the expectations of basic for register usage; how they behave; return data etc. I could imagine subtle issues if those expectations are not fully met.

Phil Dennis

This doesn’t happen for me - the audio starts at the very beginning with ‘I want to get basic running…’

Phil Dennis

Great video as usual. A couple of notes: -At 06:00 when discussing the zero page locations consider explaining that different basics use different locations to fit into areas that the OS leaves unused. This could be non-obvious for people whose only experience is with the eater machine. -At 20:35 couldn’t you add “MONCOUT = CHROUT” etc. to the config file instead of adding labels to the bios code? This might be a cleaner approach since it keeps the dependencies between basic and external code visible in the config file and avoids the need to change the bios code to include names defined by basic.

Phil Dennis

The fact that you squeezed that into a 30-something min video is a Christmas miracle. Be interested in knowing how much research, hacking, retries, etc. it took you to get it working (not including editing video and retakes); 40 hrs? Whatever it was = worth it. Thank you!

Michael Weitman

Why not change wozmon to use only LF and then enable the CONFIG_NO_CR option? Win-win?

Joel

This is a great video. I've been waiting for these last two videos for a long time! Shows the interaction and the patching between hardware and software, and, how the beginnings of an OS happen.

George M1GEO

And SCRTCH just clears the variable and string table, but it seems like it’s critical when you do this at least for the purpose of printing out the different welcome banners.

Diego Corazón

There's an editing glitch at 15:50 where you repeat the line "and there's also a dummy segment down here".

andrew cowie

Perhaps it’s intentional, but the ending of the voiceover seems a bit abrupt.

Michael

Nicely done - very pragmatic approach, well presented, with just enough debugging to prove that you're honest! I'd feel a lot more comfortable if you'd use a ZIF socket for your eprom.

Jack Rubin

9:00 - Based on the subroutine, CONFIG_SCRTCH_ORDER would appear to affect reboot/restart vectors. It's offsetting into GORESTART at different locations. 10:20 - Looks like it is reserving space for subroutine pointers, likely for executing the basic code you type into the console.

TheWebMachine

in the "is ctrl-c" function you could invert the last bne to a beq and avoid one jump I think. I don't think it really matters here because it's definitely not a hot loop, but I just thought it might be useful to point that out in general

aliceitc

amazing... This is the video I have been waiting for.... Wow!

Ingram Leedy

Superb, as usual! Question: Have you considered a short segment on changing the RAM address limit to 0x7F00 instead of 0x3FFF by using a second breadboard with 4 or 5 ICs?

Don Prefontaine

There is duplicate audio at 15:50 when talking about the dummy segment.

Patrick Kilian

Right at the start, the voice over is cutoff and starts mid-sentence.

Michael Herman


More Creators