Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 290MHz)

discuss both original and modern hardware for the bbc micro/electron
User avatar
*STEVE
Posts: 58
Joined: Fri Jul 26, 2019 8:22 pm
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by *STEVE » Sat Jul 04, 2020 7:50 pm

Run out of ideas for now, so think I'm going to switch my pi-copro back to the B+ where it seems to be working and set that up as my Econet fileserver for now (the purpose of this exercise). In the long-run I might get one of Mark's internal co-pro boards to see if that works any better.

Steve.
  • BBC Model B+ 128k
  • BBC Master 128k
  • Econet (+L3 fileserver/Arduino Filestore)
  • BBC Buggy
  • Jessop-Ralph Turtle (WIP)
  • A3020 (WIP)
  • +more

User avatar
KenLowe
Posts: 1621
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by KenLowe » Sat Jul 04, 2020 8:23 pm

I've used ribbon cables about 80cm long without any problem.

Can I just check how you're trying to connect PiTubeDirect to your Master? I assume you're using a level shifter to interface between the Master tube port and the RPi Zero. Assuming you are using a level shifter, please make sure the ribbon cable is running between the Master and the level shifter and keep the RPi Zero close coupled to the level shifter. I've had issues if I install a ribbon cable between the level shifter and the RPi.

User avatar
*STEVE
Posts: 58
Joined: Fri Jul 26, 2019 8:22 pm
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by *STEVE » Sat Jul 04, 2020 8:35 pm

KenLowe wrote:
Sat Jul 04, 2020 8:23 pm
I've used ribbon cables about 80cm long without any problem.

Can I just check how you're trying to connect PiTubeDirect to your Master? I assume you're using a level shifter to interface between the Master tube port and the RPi Zero. Assuming you are using a level shifter, please make sure the ribbon cable is running between the Master and the level shifter and keep the RPi Zero close coupled to the level shifter. I've had issues if I install a ribbon cable between the level shifter and the RPi.
Thanks for that Ken, and indeed the level shifter and Pi are close together.

UPDATE - ISSUE RESOLVED: I realised that there's been a newer version of PiTubeDirect since I first built this last year. I was using EggEater and having updated to Fer-De-Lance things are working! I realised looking at my config file that I was also using the debug kernel settings (could be relevant).

Also of interest, I tried with different tube_delay settings in Fer-De-Lance:
tube_delay=0 ... seems to work but get bad program when trying to run the benchmark, so maybe iffy on the timing.
tube_delay=15... back to the old problem of not loading BASIC on boot
tube_delay=25... all seems to work :D

Thanks for all the support in resolving this. As ever, this is the best forum I've ever seen for community help !
... now back to preparing the L3 fileserver.

Best Regards,
Steve
  • BBC Model B+ 128k
  • BBC Master 128k
  • Econet (+L3 fileserver/Arduino Filestore)
  • BBC Buggy
  • Jessop-Ralph Turtle (WIP)
  • A3020 (WIP)
  • +more

dp11
Posts: 1228
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by dp11 » Sat Jul 04, 2020 9:04 pm

Well done in getting it working. I'm surprised you need tube_delay on a Master, but hay it works.

MogKupo
Posts: 12
Joined: Fri Dec 13, 2019 9:17 am
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by MogKupo » Mon Jul 06, 2020 9:45 am

Perhaps this is the right place for tube issues, Hi

Having few issues with the PiTubeDirect on my Master

Using:

Master 128 with issue 1 board
Pi 1B (512MB revision)
about 50cm of IDE cable (yes, quite a bit but it allows me to locate the pi+level shifter board in the recess with the auxiliary power connector on the master)
Turbo MMC interface from retro clinic (tiny board that plugs directly into the user port)
MMFS (Rom 8), ADFS 1.57 (ROM 2) and Uviprom (ROM 0)

Have tested:
Tube Elite running on the fast 65c02 processor for several hours, no problems
Sphere basic test program running on ARM2 Basic 5 overnight, no problems

Problems:

On the Master 512 286 processor, a number of things that seem like they should work just crash DOS Plus / the 286. In particular, PCCE is guaranteed to crash the machine the next time a command is issued despite being loaded as a TSR to avoid it stomping all over the HDD workspace.

On the Z80 processor I get extreme weirdness, it's fine floppy only but as soon as I attempt to use the hard disk drivers I encounter extreme slowness (IE: 1-2 minutes from driver loading message to C0> prompt) but also data corruption on attempting to copy data from floppy to the emulated hard drive (IE: seems data is being written to the screen instead of the hard disk!), looks like this:

http://rinoa.kupo.be:9090/APB0SVma/file_4841.jpg

Any ideas what could be wrong? I'm running Ferdelance with absolutely no changes to config.txt/cmdline.txt other than setting the default processor to 14 so I don't have to keep turning it off when it's not needed.

Thanks

User avatar
BeebMaster
Posts: 3844
Joined: Sun Aug 02, 2009 5:59 pm
Location: Lost in the BeebVault!
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by BeebMaster » Mon Jul 06, 2020 10:57 am

I wonder if the tube_delay setting referred to above needs a bit of a nudge? Not sure why it would, but it's probably worth a try.

Although PiTube Direct is very much more tolerant of cable length than actual cheese wedge second processors, I'd still be tempted to reduce it a bit if possible. A few posts back I noted a lot of flashing on the Pi LED with the 512, meaning there's an almost constant communication stream between the host and the co-processor, which isn't as intense with, for example, a 6502 co-pro, so maybe it just can't keep up with the cable length and is causing glitches.

I have had screen corruption when using Master 512 DOS Plus, where after cataloguing a directory (ie. DOS "dir" command) followed by a wildcard delete operation the filenames were actually erased from the screen as it was working! (Having said that I had been mucking about with the hard disc's FAT header but it was still an odd occurrence).

I think it's generally accepted that DOS Plus just isn't 100% stable, even on real hardware.
Image

User avatar
marcusjambler
Posts: 840
Joined: Mon May 22, 2017 12:20 pm
Location: Bradford
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by marcusjambler » Mon Jul 06, 2020 11:15 am

On the Master 512 286 processor, a number of things that seem like they should work just crash DOS Plus / the 286. In particular, PCCE is guaranteed to crash the machine the next time a command is issued despite being loaded as a TSR to avoid it stomping all over the HDD workspace.
PCCE is known not to work with PiTUBE direct. ( It does work on the original 80186 copro )
PSOLVER2 does work.

Current DOS+ archive : viewtopic.php?f=32&t=13918

Marcus

MogKupo
Posts: 12
Joined: Fri Dec 13, 2019 9:17 am
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by MogKupo » Mon Jul 06, 2020 12:12 pm

Ah yes, some familiar titles in that thread

I'd already found Rogue to work (albeit with some funny characters) and some of the Infocom games in the course of my testing yesterday

Also the te Wordstar like editor works fine on DOS Plus.

Re infocom, DOSFrotz /almost/ works, it successfully starts the game but dies on attempting to read user input, given there's source of that about I'm going to take a look later as it'd mean games that currently don't work like Beyond Zork should be playable if it can be fixed.

Interesting to finally get to play with a Master 512 in any event, never managed to find a real one

User avatar
marcusjambler
Posts: 840
Joined: Mon May 22, 2017 12:20 pm
Location: Bradford
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by marcusjambler » Mon Jul 06, 2020 12:33 pm

infocom, DOSFrotz /almost/ works, it successfully starts the game but dies on attempting to read user input, given there's source of that about I'm going to take a look later as it'd mean games that currently don't work like Beyond Zork should be playable if it can be fixed.
That would be fantastic... There are quite a few Frotz based games ( I have a folder full of 'almost' working titles.)

Marcus

MogKupo
Posts: 12
Joined: Fri Dec 13, 2019 9:17 am
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by MogKupo » Mon Jul 06, 2020 8:39 pm

marcusjambler wrote:
Mon Jul 06, 2020 12:33 pm
infocom, DOSFrotz /almost/ works, it successfully starts the game but dies on attempting to read user input, given there's source of that about I'm going to take a look later as it'd mean games that currently don't work like Beyond Zork should be playable if it can be fixed.
That would be fantastic... There are quite a few Frotz based games ( I have a folder full of 'almost' working titles.)

Marcus
Ahh

http://home.kupo.be/files/FROTZ.EXE

I will do a better job with the keyboard reading code (IE: don't expect anything but typing and backspace to work atm, I've done nothing about the cursors as yet) but that one works for now, beyond zork didn't work, the few others I tried did (hitchhikers, zork 3, bureaucracy etc.).

It's best to start the games with frotz -d 0 storyfile due to the defaults on the master 512 display looking a bit interesting.

There's currently no cursor, I'm not entirely sure why since nothing I touched had to do with that but I'll look into that too.

User avatar
marcusjambler
Posts: 840
Joined: Mon May 22, 2017 12:20 pm
Location: Bradford
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by marcusjambler » Mon Jul 06, 2020 9:22 pm

Awesome =D>
My gears in storage at the minute (apparently our dwelling requires a new skin of paint)
But when thats over I'll have a delve into the Frotz games :D

Marcus

User avatar
zolbatar
Posts: 48
Joined: Sat Sep 22, 2018 1:12 pm
Location: Nottingham, UK
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by zolbatar » Tue Jul 07, 2020 3:04 pm

After a bit of a hiatus with work and lockdown and 3 kids driving me crazy, I'm back to looking at projects. I did a lot of RISC OS stuff last year (3D engine etc.) but I want to have a go at doing something for the PiTubeDirect (possibly/probably in ARM native mode as it seems kinda cool).

Obviously I could code up in ARM assembly using BAS135, but have any compilers (for any language) been made to work?

Also, as I can't quite remember, BAS135 is probably way too old to support any actual hardware floating point and if it did it would be FPA which is dead on modern chips. Or am I wrong?

Thank you in advance
Daryl.
Master 128 with DataCentre and RPi co-pro.
RPi B+ & 3B+ both running RISC OS.
Poorly A4000 (battery damage, partially repaired).

MogKupo
Posts: 12
Joined: Fri Dec 13, 2019 9:17 am
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by MogKupo » Tue Jul 07, 2020 5:41 pm

zolbatar wrote:
Tue Jul 07, 2020 3:04 pm
Also, as I can't quite remember, BAS135 is probably way too old to support any actual hardware floating point and if it did it would be FPA which is dead on modern chips. Or am I wrong?
I'm not actually sure but given these results it seems fast floating point of some sort is supported..

http://rinoa.kupo.be:9090/95WLzJWx/file_4858.jpg

User avatar
zolbatar
Posts: 48
Joined: Sat Sep 22, 2018 1:12 pm
Location: Nottingham, UK
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by zolbatar » Tue Jul 07, 2020 8:14 pm

MogKupo wrote:
Tue Jul 07, 2020 5:41 pm
I'm not actually sure but given these results it seems fast floating point of some sort is supported..

http://rinoa.kupo.be:9090/95WLzJWx/file_4858.jpg
Those numbers are amazing, but I was thinking of the inline assembler itself.
Master 128 with DataCentre and RPi co-pro.
RPi B+ & 3B+ both running RISC OS.
Poorly A4000 (battery damage, partially repaired).

User avatar
fordp
Posts: 1107
Joined: Sun Feb 12, 2012 9:08 pm
Location: Peterborough, England
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by fordp » Tue Jul 07, 2020 8:26 pm

The BAS135 used on the native CoPro does not use hardware floating point as stated above the source only supports FPA which is not available in modern ARM cores. The Raspberry Pi's support VFP floating point.

The 32016 core does emulate the 32xxx FPU using hardware VFP. It is however not that fast due to being emulation written in C. You need to use BAS32f on the 32016 to have fast floating point on the Pi from BASIC.
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

MogKupo
Posts: 12
Joined: Fri Dec 13, 2019 9:17 am
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by MogKupo » Thu Jul 09, 2020 11:23 am

Hi

Problem with my PiTubeDirect

Works on master (ish, I've been seeing some corruption with putfile and getfile in dos-plus)

On the BBC B it will not work at all, comes up with garbled text

Looks like: Ccorn"VWBG"6722"66K

See this: http://rinoa.kupo.be:9090/lRKb8xfn/file_4885.jpg

I've tried: Two different pis, an original 256MB Pi 1B and this 512MB 1B, I also took my 2B away from what it was doing briefly to try it, same end result, I've now tried two different cables, one far shorter than the other and to no effect, I still get nothing but this corrupt text

It looks like data bit 1 is stuck high.

I'm using one of the retroclinic adapter boards, which as I say mostly works on my master but with issues and I've occasionally seen this screen on there too but it almost always works on the master.

Any idea where I could look for the cause of the problem here?

Thanks

--
Adam

User avatar
KenLowe
Posts: 1621
Joined: Mon Oct 18, 2004 5:35 pm
Location: UK
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by KenLowe » Thu Jul 09, 2020 12:02 pm

MogKupo wrote:
Thu Jul 09, 2020 11:23 am
Hi

Problem with my PiTubeDirect

Works on master (ish, I've been seeing some corruption with putfile and getfile in dos-plus)

On the BBC B it will not work at all, comes up with garbled text

Looks like: Ccorn"VWBG"6722"66K

See this: http://rinoa.kupo.be:9090/lRKb8xfn/file_4885.jpg

I've tried: Two different pis, an original 256MB Pi 1B and this 512MB 1B, I also took my 2B away from what it was doing briefly to try it, same end result, I've now tried two different cables, one far shorter than the other and to no effect, I still get nothing but this corrupt text

It looks like data bit 1 is stuck high.

I'm using one of the retroclinic adapter boards, which as I say mostly works on my master but with issues and I've occasionally seen this screen on there too but it almost always works on the master.

Any idea where I could look for the cause of the problem here?

Thanks

--
Adam
I agree, bit 1 is stuck high. Text should be 'Acorn Tube 6502 64K', and bit 1 being stuck high would give you the message you see. Sounds like perhaps the level shifter isn't working correctly? Or since it's working on your Master, then perhaps the Beeb tube connector has a bad solder connection for data bit D1.

User avatar
BigEd
Posts: 3721
Joined: Sun Jan 24, 2010 10:24 am
Location: West Country
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by BigEd » Thu Jul 09, 2020 12:13 pm

Could be dirty contacts? The Tube connector gets very little use, and time has passed. So unplug and replug a few dozen times, or clean them with technique and determination.

MogKupo
Posts: 12
Joined: Fri Dec 13, 2019 9:17 am
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by MogKupo » Thu Jul 09, 2020 1:02 pm

Hi

I'm not sure

I've attempted the repeated reinsertion on the B but to no effect though I see no issues with it and it worked with an Acorn Z80 tube though that hasn't been plugged in in a few years now...

I think the problem still exists on the master but on the master I'm just getting an occasional spurious bit 1 high rather than all the time, if I send a zip over from the DOS Plus with putfile for example most files in it will unpack but some fail with CRC error, yet if I copy the same zip file from the 3.5" disk in MOS using Russian DOSFS ROM and *MOVE the file unpacks fine so it's only being corrupted when it passes over the tube interface.

[Edit:]
The corruption moving data on the 286 tube seems to be something else entirely, groups of bytes transferred incorrectly, see this comparison of a zip I sent from a 720K disk to the ADFS hard drive using PUTFILE, https://i.imgur.com/6OoNwBe.png - that corruption seems to happen only occasionally, I'll get perhaps 3 or 4 sequences like that in a 128K file. (that said, I did see the bit 1 stuck error on the master a couple of times so that problem still isn't completely restricted to the B)

I've tried fiddling with the tube delay in cmdline.txt after seeing it mentioned above but changing that only made things worse so back to 0 it is.

The only common part seems to be the retroclinic adapter board... I've cleaned it as there was quite a bit of flux residue, I've examined the soldering which though a bit rough doesn't look like it'd cause any issues with it actually working. I'm a bit mystified really but problem does seem to exist on the model b and the master, it's just less likely to show up on the master. Wonder if the chips on the adapter board may be defective or on the edge so they're fine on a master but not a model B?

User avatar
BeebMaster
Posts: 3844
Joined: Sun Aug 02, 2009 5:59 pm
Location: Lost in the BeebVault!
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by BeebMaster » Thu Jul 09, 2020 8:25 pm

I found that compiling the PiTube Direct code from source is a little different on the Raspberry Pi 4 than given in the Linux instructions, so I made a note of what I had to do in case it helps anyone:

Code: Select all

Compiling PiTube Direct on RPi4
*******************************

1.	Download & extract source code zip/tar
2.	Ensure compilers are installed
	sudo apt install cmake gcc-arm-none-eabi
	(WARNING needs 1.7GB of disc space!!!!)
3.	Navigate to src/scripts dir within extracted source code
	N.B. ensure NO SPACES in any part of pathname

EITHER
A.	Compile for one Pi model kernel:

4.	Clear old scripts
	./clobber.sh
5.	Run the config file for the correct Pi (e.g. Pi 1)
	./configure_rpi.sh
	Make it
	make -Bj

	kernel.img is now in scripts dir

OR
B.	Compile all kernels:
	./release.sh

	Time-stamped subdir of scripts/releases	contains all files to drop onto
	root of FAT formatted SD card


ISW 9/vii/2020

This has enabled me to have a bit of a play to see if I could "include" ARM BASIC instead of having to load it from disc every time. I've poked BASIC 135 into memory starting at &A000000 and got the CLI handler trapping *ARMBASIC to do *GO A00012C. Also I increased the Native ARM's RAM to 128MB.

There's a problem with the CLI handler/*GO as it always passes the parameter to the filing system after it's finished, so I get "Who are you?" as the file server tries to find Library.A00012C:
capture12.png
Using ADT's (A)MOVE command I can "grab" the graphics demo at &800 and plop it at ARMBASIC's PAGE:
capture13.png
Lists OK:
capture14.png
I made it so that it sets a flag if ARMBASIC has been run, so it re-executes GO A00012C after a reset:
capture15.png
Unfortunately, something about this always overwrites the first 56 bytes above the default PAGE, so there's always a Bad program error (although moving PAGE higher solves the problem):
capture16.png
Seems like all 128MB of RAM is available:
capture18.png
capture21.png
The filing system error and the Bad program error happen when using ARM BASIC from disc even without my changes. I seem to remember the Sprow ARM7 corrupting the first few bytes above OSHWM after a reset, which was fixed by a later firmware release.

I couldn't figure out where, if at all, it detects a soft or hard reset, as it shouldn't really reinvoke the language after a hard reset.

The only files I've changed in the source code are:

tube-defs.h
Note it as a development version

programs.c
To load BAS135 at &A000000

copro-armnative.c
Increase RAM to 128MB
Trap *ARMBASIC and maintain a flag on whether ARM BASIC has been loaded.

Just for my own use, but if anyone wants to incorporate the idea into a future release that would be good.
Attachments
PiTubeDirect_20200709_1839_pi.zip
(2.53 MiB) Downloaded 20 times
Image

User avatar
BeebMaster
Posts: 3844
Joined: Sun Aug 02, 2009 5:59 pm
Location: Lost in the BeebVault!
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by BeebMaster » Fri Jul 10, 2020 3:41 pm

I've just released that when it makes the zip file, it doesn't include the source code, so it's impossible to tell what changes I made! I'll upload my modified source files shortly, I'm just working on a different method of invoking ARM BASIC which solves some of the problems I encountered.
Image

User avatar
BeebMaster
Posts: 3844
Joined: Sun Aug 02, 2009 5:59 pm
Location: Lost in the BeebVault!
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by BeebMaster » Fri Jul 10, 2020 6:01 pm

I've re-done it so that *ARMBASIC is a command accepted by the Native ARM Tube, and it moves to the exec address directly instead of using a *GO. This solves the problem that the parameter in *GO was being passed to the filing system, and also doesn't corrupt the RAM at OSWHM on a soft BREAK (although it's still corrupted on a hard reset). It re-starts BASIC after a reset, but a side effect of this now is that there's no way out of BASIC - QUIT just re-invokes BASIC again! I can't find a suitable point to clear the flag I set when ARMBASIC has been invoked to stop this.

I also increased the RAM to 256MB and moved BASIC further up out of the way, seems to work OK, but of course it's all probably highly illegal!

Here's my dev build, and the source code of 5 file which I've changed (search "ISW" to see what I've done):
Attachments
PiTubeDirect_20200710_1742_pi.zip
(2.53 MiB) Downloaded 17 times
PiTubeModifiedSrcFiles.zip
(73.79 KiB) Downloaded 18 times
Image

User avatar
BeebMaster
Posts: 3844
Joined: Sun Aug 02, 2009 5:59 pm
Location: Lost in the BeebVault!
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by BeebMaster » Fri Jul 10, 2020 11:10 pm

I've figured out the "Bad program" thing...on a hard reset, the current language ROM is copied across the Tube into co-pro RAM starting at &8000 of course. So, with ARMBASIC PAGE at &8F00, it overwrites any BASIC program. We could do with making ARM BASIC start with PAGE at &10000, I don't know if that's possible or if it would cause a compatibility issue with anything written on an actual Acorn ARM machine (probably not).

(Incidentally this is a problem with loading BAS135 from disc as well, it's not related to my own code changes.)

There is a workaround, but only for a Master. Configure the language to any empty ROM (e.g. *CONFIGURE LANG 0) but then with the Tube off, go into BASIC, enable the Tube, press BREAK, you'll be in a 6502 second processor by default and drop to a supervisor prompt because BASIC hasn't copied over, *FX 151,230,15 to select the Native ARM, then CTRL-BREAK will start the Native ARM. When you press CTRL-BREAK it gets stuck because it doesn't like the "This is not a language" error, (or any error, such as "Station nnn not listening" if you do SHIFT-BREAK) just printing the first four characters of the error message and then the start-up banner again, and stops. But pressing BREAK restores everything, and most importantly, if ARMBASIC is already loaded, OLD works.
Image

User avatar
BeebMaster
Posts: 3844
Joined: Sun Aug 02, 2009 5:59 pm
Location: Lost in the BeebVault!
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by BeebMaster » Sun Jul 12, 2020 10:56 am

BeebMaster wrote:
Fri Jul 10, 2020 11:10 pm
We could do with making ARM BASIC start with PAGE at &10000, I don't know if that's possible
It certainly should be, if no other than by having the single line

Code: Select all

10PAGE=&10000
somewhere in RAM and then starting ARM BASIC using

Code: Select all

*BASIC -chain @nnnnnnnn,nnnnnnnn
with the nnns pointing to the beginning and end of memory where that line is located.

It works on RISC PC, but I can't get the Native ARM to accept it, all I get is "Incorrect in-core file description".
Image

dp11
Posts: 1228
Joined: Sun Aug 12, 2012 9:47 pm
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by dp11 » Sun Jul 12, 2020 1:47 pm

Is the right way to fix this to detect the language transfer and if the header isn't arm just ignore the data being transferred.?

User avatar
fordp
Posts: 1107
Joined: Sun Feb 12, 2012 9:08 pm
Location: Peterborough, England
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by fordp » Sun Jul 12, 2020 6:57 pm

dp11 wrote:
Sun Jul 12, 2020 1:47 pm
Is the right way to fix this to detect the language transfer and if the header isn't ARM just ignore the data being transferred.?
This sounds correct. I would guess that all the official non-6502 CoPro's do have examples of best practice. I would guess you can reverse engineer what Acorn did on B_EM?
FordP (Simon Ellwood)
Time is an illusion. Lunchtime, doubly so!

User avatar
BeebMaster
Posts: 3844
Joined: Sun Aug 02, 2009 5:59 pm
Location: Lost in the BeebVault!
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by BeebMaster » Sun Jul 12, 2020 7:57 pm

I am not entirely sure how the language copying works - if it's "pushed" by the host machine's Tube host code into the second processor then it may be difficult, unless the Tube's boot ROM can be made to "reject" or ignore it. If the Native ARM Tube ROM source is available then it could be possible. Is that in fact an Acorn thing or something written for Pi Tube Direct?
Image

User avatar
hoglet
Posts: 9799
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by hoglet » Sun Jul 12, 2020 8:33 pm

BeebMaster wrote:
Sun Jul 12, 2020 7:57 pm
If the Native ARM Tube ROM source is available then it could be possible. Is that in fact an Acorn thing or something written for Pi Tube Direct?
The Native ARM Co Pro is something experimental I wrote specially for PiTubeDirect. It's a bit different from all the other Co Processors, as its written in directly C.

The source is part of PiTubeDirect:
https://github.com/hoglet67/PiTubeDirec ... rmnative.c

The data transfer code is here:
https://github.com/hoglet67/PiTubeDirec ... tube-isr.c

The RISCOS-like API is here:
https://github.com/hoglet67/PiTubeDirec ... tube-swi.c

(there are quite a few other files, but these are the main entry points)

The language transfer is initiated by the host and it will be hard (i.e. a massive hack) for the Co Processor to "ignore", as it doesn't really have very much context. If you can work around it by setting PAGE higher in memory, I think that's the simplest option.

Dave

User avatar
BigEd
Posts: 3721
Joined: Sun Jan 24, 2010 10:24 am
Location: West Country
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by BigEd » Sun Jul 12, 2020 10:08 pm

Is it the case that *CONFIGURE can be used to stop Basic being pushed down to the second processor?

User avatar
hoglet
Posts: 9799
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: Pi-based Co-Pro on the cheap - 100MHz 6502 for £10? (now 274MHz)

Post by hoglet » Sun Jul 12, 2020 10:11 pm

BigEd wrote:
Sun Jul 12, 2020 10:08 pm
Is it the case that *CONFIGURE can be used to stop Basic being pushed down to the second processor?
On a Master, yes, by setting *CONFIGURE LANG to a non-existant language ROM.

On a Model B you need a ROM manager to achieve the same effect.

Dave

Post Reply

Return to “8-bit acorn hardware”