Sundby/System
Fast development in embedded hardware/software

Please note that this page is currently WIP (Work in progress). Please send me a note if anything is unclear, wrong or missing.

  1. Quick start
  2. Mounting
  3. Testing
  4. Testing CP/M (CPM)
  5. Using Basic for different CPU’s
  6. Useful commands and tips
  7. Useful links

1. Quick start

NOTE: the silk screen on Master version for serial conncetion is wrong. RX and GND has changed places.

When booting with the PiTubeDirect you man need to press “Break” 1 or 2 time for the emulator to register correct on the Master.

Switching between the emulator is done with *fx151,230,N where N can be:

0 for the 65tube based 65C02 Co Processor @274MHz
1 for the 65tube based 6502 Co Processor @3MHz
2 for the lib6502 based 65C02 Co Processor @19.8MHz
4 for the Z80 Co Processor w CP/M bootstrap
8 for the 80286 Co Processor
9  for Acorn 6809 Co Processor
12 for the Acorn ARM2 Co Processor (Acorn)
13 for the Pandora 32000 Co Processor
14 To disable the Co Processor
15 for the native ARM1176 1GHz processor

Timing is done with Pi Zero.

You can also set the default emulator in config.txt on the flash card
e.g. copro=14
This will disable the emulator at startup.

2. Mounting

The signal converter can be mounted under the BBC, external and internal in the Master. All need different hardware versions.

External version.

Please note where pin one is placed. The marked side on the flat cable is pin 1 and should be fitted to pin 1 on the board.

showpin1External version with Pi 3 in a box

Placed under the BBC

Please cover the screws for the keyboard with tape or remove the to prevent any short circuit.

 

Placed inside the master

Make sure that the pins are in the correct place.

 

3. Testing

To test using 6502 Co processor (*FX 151,230,0) you may test using the following BBC commands after first boot:

The color sphere.

>O. (old)
>RUN

Picture of sphere

Speed testing

>PAGE=&1000
>O.
>RUN

Test result for Pi Zero

4. Testing Z80 with CP/M (CPM)

To Test CP/M with mmbeeb (MMFS) you need to do some trix.

The CP/M disk are 400K “single image”. This makes it a little awkward to use with MMB because you need to load disk0 and disk2 as the two halves of the image.

To create this you need to use the Perl scripts by Steven. You may download the scripts from here.
He have also provided a ready image that you can test out.
To use this you need to copy the BBC.MMC image as a file to an SD card and put it in our mmbeeb card interface.

Boot your BBC and type:
*FX151,230,4
Hit the <break> key that should take you to the Z80 CP/M bootstrap prompt
*DIN 0 0
*DIN 2 2
*CPM

You can try out image 70 and 72 which is a better version of CP/M

For RetroClinic’s DataCentre interface.
http://stardot.org.uk/forums/viewtopic.php?f=3&t=11325&p=157015&sid=dbfcac8cf0be107d606aabf0011b6a2f#p156998

5. Using Basic for different CPU’s

The files are available at the following links
32016 BBC BASIC:
 
ARM2 BBC BASIC:
Z80 BBC BASIC:
This is a complete file including the CP/M executable version of BBC BASIC that needs CP/M to run. I am using just the included ROM version (BBCBasic.rom) which I then load into a sideways RAM slot (I am using a BBC Master) with, say *SRLOAD Z80BASIC 8000 7 (having saved the file as Z80BASIC). This is persistent across BREAKs and the system behaves like a Z80 BBC Micro.
ARM7 BBC BASIC:
All the files above, except, obviously the Z80 version, which is a ROM image, can be run from the * prompt by just typing their filename, provided their saved load and execution addresses are ok. I am using 00010000 for both load and exec, for all, other than ARM7 for which I am using 0000F000 for load and 0000F12C for exec.
The only version of BBC BASIC I found for x86 is a DOS executable, which I cannot run as I haven’t got round to creating the DRDOS system disks for the BBC Master 512. It may be possible to run directly if the load to execution address offset is known, but I have not tried it.

6. Useful commands and hints

The MMBeeb menu is not compatible with the Tube, hence the Tube on! error.

This is regardless of whether you use MMFS or SuperMMC or SmartSPI.

Try *DIN 45 followed by *TUBEELT. That’s my standard test.

On a Model B to disable the Co Pro, type *FX 151,230,14.

——

Once you have disabled the Co Pro with *FX 151,230,14 + Ctrl Break, it should be possible to enable again, e.g. with *FX 151,230,0 + Ctrl Break.

Note, on a Master with a just Pi Tube Direct installed (i.e. no other Co Pro), it’s important to *CONFIGURE INTUBE/EXTUBE to the opposite of where your Pi Tube Direct is installed:
– e.g. If you have it fitted internally, then *CONFIGURE EXTUBE

If you don’t do this, then *FX 151,230,0 will not re-enable the Co Pro, because it ends up being directed by the Master the wrong tube interface. Sorry this is so confusing, it’s just how it is!

——

Check list (Mostly BBC Master)

1. Do a *ROMS to see which rom is installed and active. You need one the the Tube code active. Depends on version of MOS where it is.
2. Did you hit break after boot up? The master does not wait for the Co-processor to start.
3. On BBC Master the Coprocessors must be enabled. Try *CONFIGURE TUBE and *CONFIGURE INTUBE then Ctrl Break
4. Some card I have shipped have the Coprocessor disabled by default. Type *FX151,230,0 + Ctrl Break or change the file config.txt with line copro=0
5. Some Master have got the config setting screwed up and need to be set to default. See http://www.sundby.com/index.php/en/acornbbc-master-128-cmos-battery-pack-and-computer-configuration/

Changing default boot CoProcessor

In the config file on the SD card there is a file config.txt

Add copro=NN where NN is the number of the CoProcessor

7. Useful links

Project’s official wiki page

PiTubeDirect Readme

PiTube official releases

Demo of the project on youtube.

Using and testing each core

 

Credits for this manual:
Giorgos Levas
Guido Lehwalder
Ed Spittles

Del dette: