Skip to content

Examples for each CoPro core

BigEd edited this page Apr 21, 2017 · 3 revisions

Here are some brief instructions for things to do on each of the CPU cores in the PiTubeDirect. To switch cores, you need a *FX command followed by a Control-Break. If you always want to boot up with a specific core, edit the file cmdline.txt on the SD card.

The 3MHz 65C02 core

*FX 151,230,1

This core is very like the original external second processor, and is suitable for running Tube-aware games, such as Tube Elite. You can select a different speed, such as the 4MHz of the Master internal coprocessor, by editing the file cmdline.txt on the SD card, or by issuing *FX 151,228,4 at the command line.

All other clock speeds will depend on which model of Pi you are using, but in this case the clock speed is calibrated.

The full-speed 65C02 core

*FX 151,230,0

This core offers 1 megabyte of banked memory although very few programs know how to use it. Both 65C02 cores come with three programs built-in:

  • Sphere benchmark (OLD, RUN)
    • Contains PiTubeDirect status readout (LIST 1,9)
  • ClockSP benchmark (PAGE=&1000, OLD, RUN)
    • this is tuned for Basic 2 speed comparison
  • Klaus Dormann's test suite (CALL &3400)

To re-initialise memory, for Cobra release and later, use *FX 151,230,128

You can also run:

  • BBC Basic and HiBasic the large-memory version
  • Pi calculation
  • Conway's Game of Life (can use the banked memory extension)

The Z80 core

*FX 151,230,4

This core runs at full speed, about the equivalent of a 40MHz Z80. User guide here. You can run:

  • BBC Basic (including assembler)
  • ZEXDOC and ZEXALL test suites
  • Pi calculation
  • Acorn CP/M (many resources here)
    • BBC Basic
    • Mallard Basic
    • COBOL with single-stepping debugger
    • Zork, other infocom adventures

The 80286 core

*FX 151,230,8

Runs DosPlus by Digital Research

  • BBC Basic and large-memory BBC Basic (512k free)
    • various demos, including PCW benchmarks (52MHz reported for Basic, 49MHz for BigBasic)
    • includes assembler
  • Games including chess, sopwith, wombat
  • GEM graphical environment (needs a mouse)
    • with word processor, paint program
  • extremely slow Z80 emulator

The 6809 core

*FX 151,230,9

  • Flex operating system (user guide)
    • Basic and XBasic
    • Adventure (adv9)
    • Assemblers
    • C compiler
    • Forth

The ARM2 core

*FX 151,230,12

This is like the original ARM Evaluation System external coprocessor

  • BBC Basic (with probably buggy assembler) (AB)
    • Mandelbrot (using Basic's hidden MANDEL command)

The NatSemi 32016 core

*FX 151,230,13

This is the 16/32 bit CPU found in the ABC, Master Scientific, and Cambridge Workstation products, also available as an external second processor, and with an FPU on board. Scans of documentation here.

  • Basic: Bas32 and Bas32f
  • Pi calculation (see here and here.)
  • PanOS (disk images here and see also here.)
    • welcome slideshow and demo
    • adventure (advent)
    • several programming languages with hello world demonstrations
      • Fortran
      • C
      • Lisp (includes Logo-like graphics primitives)
      • Pascal
    • EDIT text editor
    • Spice circuit simulator, see here.
    • linpack benchmark (in Fortran - see here.)
    • whetstone benchmark - see here.

To set RAM size for this core, in Cobra release and later, use *fx 151,226,1 followed by *fx 151,228,val where val counts up in 64k units. Add 128 to val to count in 8Mbyte units. Or, set a copro13_memory_size value in cmdline.txt

The native ARM core

*FX 151,230,15

This is the highest-performing core. Code is actually running on the Pi's ARM CPU directly, with no emulation layer. Basic runs at the speed of a multi-GHz 6502, if such a thing were possible.

  • Basic (BAS135) (with assembler)

The null core

*FX 151,230,14 This is a convenience core, which offers no co-processor, and allows your Beeb to work as if the Pi were disconnected or powered off. On a Master, you can use *NOTUBE to do the same.

Clone this wiki locally