|
Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment. |
|
Thread Tools |
6th Feb 2019, 11:41 pm | #1 |
Dekatron
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
|
BBC Master Programming Question
Just a quick question for anyone who was lucky enough to have got their hands on a real BBC Master 128 ..... (Or probably a Master Compact, which was basically a cut-down 128).
I'm currently doing a bit of a "retro programming" project. I can't say too much yet, but it involves a database. I'm hoping to shoehorn a version of it into a model B (without 6502 second processor), but it might well end up overflowing the 32K even if I use a cheaper graphics mode. Am I right in thinking if you use one of the "shadow" screen modes on a BBC Master Series, you can just address memory linearly up to &7FFF (i.e., right through the space where the screen would be, in a "normal" graphics mode or on a Model B)? I'm sure that's the case, but I only ever had a Model B myself. And I'm after making this as compatible as possible ..... so I'm already using OS calls for input/output, not reading or writing the display directly, nor using any non-standard opcodes.
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments. |
7th Feb 2019, 1:08 am | #2 |
Dekatron
Join Date: Jul 2007
Location: Evesham, Worcestershire, UK.
Posts: 4,244
|
Re: BBC Master Programming Question
Yes, that's correct. Also true for the B+
I have a Master set up and working if there's anything you'd like me to check. Though I suspect that you can go a long way with the various emulators if you don't have access to the real thing. My favourite is this one - written entirely in JavaScript: https://bbc.godbolt.org/ |
7th Feb 2019, 2:07 am | #3 |
Dekatron
Join Date: May 2006
Location: Invercargill, New Zealand
Posts: 3,457
|
Re: BBC Master Programming Question
If you want a Master Compact let me know, I have the base unit (without power supply, drives etc) of one here that another local vintage collector didn't want - he specialises in Commodore.
I've now got a Master 128 (thanks to Paul Sherwin) so happy to send it over for the cost of shipping if you (or anyone else) has a use for it. Shipping would probably be about GBP60 though, and it would need the drive unit/power supply or know what to do to knock something up. No idea if it works. |
7th Feb 2019, 11:27 am | #4 |
Octode
Join Date: Nov 2004
Location: Hebden Bridge, West Yorkshire, UK.
Posts: 1,885
|
Re: BBC Master Programming Question
That's right you can use all the memory from PAGE which is usually but not always &E00 on a Master through to &8000 when in a shadow mode
Mdfs.net has good documentation for memory layout see http://mdfs.net/Docs/Comp/BBC/AllMem I can also recommend stardot.org.uk where there's a thriving ecosystem of developers and users arjoll I'd love to have a compact but i suspect I'd be shot if i brought home another machine at this point. I'm sure somebody on stardot would give it a good home |
7th Feb 2019, 4:09 pm | #5 |
Dekatron
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
|
Re: BBC Master Programming Question
Thanks for the confirmation. I thought that was how it worked, but didn't want to paint myself into a corner by assuming something that only later turned out to be wrong.
What I've written so far is working very nicely under emulation (BeebEm). I still seem to remember how to program 6502 assembly language pretty much off the top of my head, even! (The 6502 was the first processor where I tried riding the metal in earnest, having decided the Z-80 was too hard.) Stardot looks like a very useful resource, thanks for that.
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments. |
8th Apr 2019, 4:09 am | #6 | |
Triode
Join Date: Sep 2018
Location: London, UK.
Posts: 16
|
Re: BBC Master Programming Question
Quote:
I decided to port it to the PC on a similar basis. The BBC Basic was straightforward enough to port to Turbo Pascal but the Assembler did not easily fit into the 8086 at all!!! I'm sure that's what wore out my head. 6502 was of course the first RISC processor. By necessity rather than by design I assume, but it was still very speedy. |
|
8th Apr 2019, 9:39 am | #7 |
Dekatron
Join Date: Jun 2016
Location: London, UK.
Posts: 3,687
|
Re: BBC Master Programming Question
If you want ultimate memory, get a Master Turbo card for your 128. That gives you near 64k contiguous and a 50% performance boost with a 65C102. It shifts the brains to a coprocessor card on the tube keeping the main machine as a terminal.
I had one of them back in 2002. I wish I'd never got rid of it. |
8th Apr 2019, 6:54 pm | #8 |
Dekatron
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
|
Re: BBC Master Programming Question
Well, so far I can still just about fit the assembled code and BASIC wrapper into a Model B -- as long as I run BASIC 2 with its offset assembly mode! However, the real test is going to come once I start having some data. I have avoided self-changing code (even although it would be so tempting) so it ought to be runnable from sideways ROM, if push comes to shove.
I've also written a little utility to open DFS disc images, and translate between the BBC Micro's LF, CR line endings and "modern" LF line endings. This allows me to do things on the host side. (I haven't yet made it able to detokenise BASIC programs, but you can do that yourself using *SPOOL ). When I'm sure that it is working well enough to trust near other people's machines, I'll post a little linky here. One nice thing about working under emulation is, I can comment my Assembler source heavily on the host side, using un-numbered lines starting with *| . These get ignored by the computer when the file is read using *EXEC ; they are treated as immediate-mode commands, and *| indicates a comment to the MOS.
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments. |