UK Vintage Radio Repair and Restoration Powered By Google Custom Search Vintage Radio and TV Service Data

Go Back   UK Vintage Radio Repair and Restoration Discussion Forum > Specific Vintage Equipment > Vintage Computers

Notices

Vintage Computers Any vintage computer systems, calculators, video games etc., but with an emphasis on 1980s and earlier equipment.

Closed Thread
 
Thread Tools
Old 6th Feb 2019, 11:41 pm   #1
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default 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.
julie_m is offline  
Old 7th Feb 2019, 1:08 am   #2
mhennessy
Dekatron
 
Join Date: Jul 2007
Location: Evesham, Worcestershire, UK.
Posts: 4,241
Default 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/
mhennessy is offline  
Old 7th Feb 2019, 2:07 am   #3
arjoll
Dekatron
 
arjoll's Avatar
 
Join Date: May 2006
Location: Invercargill, New Zealand
Posts: 3,440
Default 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.
arjoll is online now  
Old 7th Feb 2019, 11:27 am   #4
dominicbeesley
Octode
 
dominicbeesley's Avatar
 
Join Date: Nov 2004
Location: Hebden Bridge, West Yorkshire, UK.
Posts: 1,885
Default 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
dominicbeesley is offline  
Old 7th Feb 2019, 4:09 pm   #5
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default 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.
julie_m is offline  
Old 8th Apr 2019, 4:09 am   #6
jimjim1
Triode
 
Join Date: Sep 2018
Location: London, UK.
Posts: 16
Default Re: BBC Master Programming Question

Quote:
Originally Posted by julie_m View Post
]The 6502 was the first processor where I tried riding the metal in earnest, having decided the Z-80 was too hard.
That reminds me - I had something working very nicely on the BBC, small assembler module (100 lines?) and rest in Basic.

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.
jimjim1 is offline  
Old 8th Apr 2019, 9:39 am   #7
MrBungle
Dekatron
 
MrBungle's Avatar
 
Join Date: Jun 2016
Location: London, UK.
Posts: 3,687
Default 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.
MrBungle is offline  
Old 8th Apr 2019, 6:54 pm   #8
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default 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.
julie_m is offline  
Closed Thread

Thread Tools



All times are GMT +1. The time now is 12:22 pm.


All information and advice on this forum is subject to the WARNING AND DISCLAIMER located at https://www.vintage-radio.net/rules.html.
Failure to heed this warning may result in death or serious injury to yourself and/or others.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Copyright ©2002 - 2023, Paul Stenning.