YARRB [SOLD OUT]

discussion of games, software, hardware & emulators relating to the Acorn Atom and Acorn System machines.
User avatar
IanB
Posts: 386
Joined: Sun Sep 04, 2011 7:28 pm
Location: South Wales
Contact:

Re: YARRB

Post by IanB » Sun May 19, 2019 4:17 pm

I've got my YARRB board mostly working but I'm having an issue with Econet.
I made up a custom ROM image with the econet driver but it's behaving strangely on reset:

Pressing BREAK on it's own initialises the Econet and the station header is printed followed by the > prompt but more than half the time the Atom then freezes up and won't respond to any keypresses.

Pressing SHIFT-BREAK makes the econet rom skip initialisation and everthing works fine (but no Econet)

Pressing CTRL-BREAK or REPT-BREAK econet is initialised and everthing works fine.

Here's a copy of the ROM image I'm using:
Atom Yarrb Econet.zip
(13.41 KiB) Downloaded 6 times
Dave: Can you check this with your Atom Econet

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

Re: YARRB

Post by hoglet » Sun May 19, 2019 4:39 pm

IanB wrote:
Sun May 19, 2019 4:17 pm
Here's a copy of the ROM image I'm using:
Atom Yarrb Econet.zip
Dave: Can you check this with your Atom Econet
This seems to work fine for me. I don't get any issues with the keyboard freezing up.

User avatar
IanB
Posts: 386
Joined: Sun Sep 04, 2011 7:28 pm
Location: South Wales
Contact:

Re: YARRB

Post by IanB » Sun May 19, 2019 5:03 pm

hoglet wrote:
Sun May 19, 2019 4:39 pm
This seems to work fine for me. I don't get any issues with the keyboard freezing up.
Thanks for checking.

I seem to have fixed it.

When I first got the YARRB board working, the 1Mhz clock coming out of the CPLD was very jittery and modulated and the Atom was very unstable.

This was primarily due to the 4Mhz clock that was picked up by the YARRB board from pin 13 of IC44 being very low (around 2.5 to 3v) so I buffered it with a 74HCT08 and that made things more stable by eliminating the modulation but the signal was still quite jittery.

Looking at the circuit diagram, I just realised that pin 13 was actually being fed from the output of pin 2 on IC45 (74LS04) so I replaced that and now things are totally stable.
Last edited by IanB on Sun May 19, 2019 5:10 pm, edited 1 time in total.

User avatar
roland
Posts: 3268
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: YARRB

Post by roland » Sun May 19, 2019 5:31 pm

Good to hear that you got it working =D>

In most cases when the Atom with a Yarrb board goes into graphics mode there is something wrong with Phi2 (or the clock signal in general).
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
IanB
Posts: 386
Joined: Sun Sep 04, 2011 7:28 pm
Location: South Wales
Contact:

Re: YARRB

Post by IanB » Sun May 19, 2019 5:52 pm

roland wrote:
Sun May 19, 2019 5:31 pm
Good to hear that you got it working
What ROMs are in the standard Flash image and how do you switch between them?
Also are any of the ROMs patched?

User avatar
roland
Posts: 3268
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: YARRB

Post by roland » Sun May 19, 2019 6:33 pm

I don't exactly now what roms are in the original EEPROM, but there is a memory map and some more info in this post: viewtopic.php?f=44&t=11373&start=60#p145749

Utility roms at #Axxx are selected by writing the rom number to #BFFF.
256K + 6502 Inside
MAN WOMAN :shock:

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

Re: YARRB

Post by hoglet » Sun May 26, 2019 3:55 pm

Hi Roland,

I've just been helping Neil (-B-) debug an issue with the ADG games crashing which he initially though might be an issue with the Ram on the Noise Killer.

I was able to reproduce it on my system, and after some debugging (with ICE T65) it turned out to be YARRB.

It seems with the latest CPLD firmware, YARRB defaults to having a hole in the RAM at #A00-#AFF, and you need to set BFFE bit 1 to get rid of this.

Is this what you would expect?

I think you said earlier in this thread that in a system that has both AtoMMC and DOS that you wanted AtoMMC as the default. Surely the default should then be to have contiguous memory as well?

Dave

User avatar
roland
Posts: 3268
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: YARRB

Post by roland » Sun May 26, 2019 7:46 pm

hoglet wrote:
Sun May 26, 2019 3:55 pm
It seems with the latest CPLD firmware, YARRB defaults to having a hole in the RAM at #A00-#AFF, and you need to set BFFE bit 1 to get rid of this.
Is this what you would expect?
Yes. This works as designed. If you look at the definitions of the bits of #BFFE then the lower four bits have these settings:
- bit 3: 0 set the Atom in Ram/Rom mode (Yarrb should be (almost) compatible with the Ram/rom board)
- bit 2: 0 = Atom DOS, 1 = AtoMMC
- bit 1: 0 = FDC at #0A00 (no RAM), 1 = RAM at #0A00 (no FDC)
- bit 0: 0 = #A000 is ROM, 1 = #A000 = RAM

I told people to enable AtoMMC mode by entering ?#BFFE=4 but on second thought it's better to use ?#BFFE=6 because that closes the memory gap at #0A00.

I wanted to be sure about this but I cannot test it. My Yarrbed Atom does not boot any more. It's also a bit of Yarrb related: I sold the RAM memory chip to Bill so my Atom has no ram for a little while :mrgreen:
hoglet wrote:
Sun May 26, 2019 3:55 pm
I think you said earlier in this thread that in a system that has both AtoMMC and DOS that you wanted AtoMMC as the default. Surely the default should then be to have contiguous memory as well?
Did I? I can't remember and must have forgotten that completely. I think it should be possible to set the default (power up) value of #BFFE to 6, isn't it. That should be the easiest way and it keeps all Yarrb boards compatible. But like I said, I don't have an Atom with Yarrb to test at the moment. I can bring my development kit to the TechSat so we can work on it then.
256K + 6502 Inside
MAN WOMAN :shock:

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

Re: YARRB

Post by hoglet » Sun May 26, 2019 7:52 pm

roland wrote:
Sun May 26, 2019 7:46 pm
hoglet wrote:
Sun May 26, 2019 3:55 pm
I think you said earlier in this thread that in a system that has both AtoMMC and DOS that you wanted AtoMMC as the default. Surely the default should then be to have contiguous memory as well?
Did I? I can't remember and must have forgotten that completely. I think it should be possible to set the default (power up) value of #BFFE to 6, isn't it. That should be the easiest way and it keeps all Yarrb boards compatible. But like I said, I don't have an Atom with Yarrb to test at the moment. I can bring my development kit to the TechSat so we can work on it then.
It was in the first post of this thread: :D
viewtopic.php?p=141745#p141745
In de power-on default I want to select AtoMMC rom at #Exxx but when the second ROM-bank (with AtomDOS at #Exxx) is selected, the board should disable memory at #0Axx and enable the Atom bus for accessing the 8271 FDC controller of the disc controller board.

User avatar
-B-
Posts: 130
Joined: Wed Nov 26, 2014 11:54 am
Location: Noordwijk ZH (NL) / Durham (UK)
Contact:

Re: YARRB

Post by -B- » Sun May 26, 2019 8:03 pm

Ok, after reading the RAMROM bits document, it’s a little clearer to me how this works.

Now, how do I change the startup value of BFFE and what do the bits of BFFF relate to?

Excuse my ignorance.

Neil.

PS: BFFE=6 does invoke AtoMMC and fill the RAM hole.
Atom | BBC Model A | BBC Model B | Electron | Olivetti PC128S.

User avatar
oss003
Posts: 3042
Joined: Tue Jul 14, 2009 11:57 am
Location: Netherlands
Contact:

Re: YARRB

Post by oss003 » Sun May 26, 2019 8:06 pm

Yes, ?#BFFE=6 should be ok to run the AGD games from AtoMMC.
?#BFFF=x switches a ROM bank at #Axxx

Greetings
Kees
Last edited by oss003 on Sun May 26, 2019 8:07 pm, edited 1 time in total.

User avatar
roland
Posts: 3268
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: YARRB

Post by roland » Sun May 26, 2019 8:27 pm

-B- wrote:
Sun May 26, 2019 8:03 pm
Now, how do I change the startup value of BFFE and what do the bits of BFFF relate to?
This has to be done in the VHDL source file and the a new jedec file has to be generated for programming into the CPLD. I don't have the development laptop at hand right now.

The lowest three bits of BFFF select the rom banks at #A000 and bit 6 is used by Branquar(*) (the automatic bank switching software) to lock a bank.
-B- wrote:
Sun May 26, 2019 8:03 pm
Excuse my ignorance.
You don't have to apologize when learning something new. That's what this forum is for, asking questions and for me, when I answer a question it makes me remind how I did (make) things in the past.
-B- wrote:
Sun May 26, 2019 8:03 pm
PS: BFFE=6 does invoke AtoMMC and fill the RAM hole.

(*) A bit of explanation:
A standard Atom has only one socket for an expansion rom at #A000 (IC24). But in the past clever people build memory boards with up to 8 or even 16 sockets that were bank-switched so we could use more than one utility rom or basic extension. In the beginning switching bank was done by poking to #BFFF but it can lead to a hanging Atom if one of the operating system vectors at #02xx point to a rombank at #A000. The Atom is not design for this.

So other clever persons wrote software that could automatic switch between those rom banks and called that SOS (Switchboard Operating System). Branquart is the most easiest one to install and use. It takes care of the vectors and some zeropage addresses when the roms are switched. Branquar stores the vectors in its own workspace and remembers which rom it originally pointed to. Zeropage addresses are simply swapped to Branquar's workspace. Whenever a non-existing statement or function is called in a basic programme, the Atom triggers error 94 or 29. In the Floating Point rom there is a small mod that triggers Branquar to intercept these errors. Then it starts to search in the currently selected rombank for the statement or function. If it is found, than it is executed; if not found then it goes to the next rombank (and does a round-robin when the max bank has been reached). If the statement or function is still not found then Branquar throws the error again and the programme stops.

Besides switching roms, Branquar also added a few (control) statements and in the current implementation LOCK <rombank> and UNLOCK are the most used ones. You may guess that LOCK will lock the given rombank (even if one of the vectors point to another bank) and UNLOCK releases the lock. When a bank is locked, Branquar does not search for an unknown statement in another bank.

I hope this gives an impression how the Atom RAM/ROM boards work. Most versions of the AtoMMC rom have Branquar installed. This goes also for Yarrb boards, RAM/ROM, Atom 2k15, FPGAtom (Atom 2k18), Atomulator etc.
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
-B-
Posts: 130
Joined: Wed Nov 26, 2014 11:54 am
Location: Noordwijk ZH (NL) / Durham (UK)
Contact:

Re: YARRB

Post by -B- » Mon May 27, 2019 8:20 am

roland wrote:
Sun May 26, 2019 8:27 pm
This has to be done in the VHDL source file and the a new jedec file has to be generated for programming into the CPLD.
I quite like it the way it is. Just having an understanding of it makes it less complicated to me.
roland wrote:
Sun May 26, 2019 8:27 pm
A standard Atom has only one socket for an expansion rom at #A000 (IC24).
When I received my Atom and saw the single expansion ROM socket, I knew immediately that I needed a RAM/ROM board. The research I did before owning an Atom lead me to the decision anyway, and the fact that I needed 32k RAM for the modern software.
roland wrote:
Sun May 26, 2019 8:27 pm
Then it starts to search in the currently selected rombank for the statement or function. If it is found, than it is executed; if not found then it goes to the next rombank (and does a round-robin when the max bank has been reached).
Much like the Atom's younger 8-bit relatives.

Thanks everyone for your help.

Who knew that owning an Atom would be so rewarding?
Atom | BBC Model A | BBC Model B | Electron | Olivetti PC128S.

User avatar
Multiwizard
Posts: 1589
Joined: Wed Jan 11, 2012 9:03 pm
Contact:

Re: YARRB

Post by Multiwizard » Mon May 27, 2019 8:51 am

-B- wrote:
Mon May 27, 2019 8:20 am
Who knew that owning an Atom would be so rewarding?
I did... :wink:


Greetings, Wim... :-)

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

Re: YARRB

Post by hoglet » Tue May 28, 2019 12:34 pm

-B- wrote:
Sun May 26, 2019 8:03 pm
Now, how do I change the startup value of BFFE and what do the bits of BFFF relate to?
Roland has posted the sources for the YARRB CPLD here:
http://diy.acornatom.nl/download/yarrb/yarrb72v13.zip

To change the power-on BFFE default to 6, you need to edit the .vhd file and change:

Code: Select all

	signal regBFFE,regBFFF:    STD_LOGIC_VECTOR(7 downto 0);

to

Code: Select all

	signal regBFFE:            STD_LOGIC_VECTOR(7 downto 0) := x"06";
	signal regBFFF:            STD_LOGIC_VECTOR(7 downto 0);
Then manually delete the existing yarrb.jed and rebuild it.

Or you could program the version in this zip file:
yarrb72v14.zip
(13.77 KiB) Downloaded 12 times
Dave
Last edited by hoglet on Tue May 28, 2019 12:35 pm, edited 5 times in total.

User avatar
-B-
Posts: 130
Joined: Wed Nov 26, 2014 11:54 am
Location: Noordwijk ZH (NL) / Durham (UK)
Contact:

Re: YARRB

Post by -B- » Tue May 28, 2019 2:03 pm

hoglet wrote:
Tue May 28, 2019 12:34 pm
Or you could program the version in this zip file:
yarrb72v14.zip
That will be the easier option. Thanks Dave.
Atom | BBC Model A | BBC Model B | Electron | Olivetti PC128S.

User avatar
-B-
Posts: 130
Joined: Wed Nov 26, 2014 11:54 am
Location: Noordwijk ZH (NL) / Durham (UK)
Contact:

Re: YARRB

Post by -B- » Tue May 28, 2019 7:50 pm

CB7CD86A-6377-4B78-8164-A25CD878A8B8.jpeg

Well, that was rather easy and painless. It now starts with BFFE=6. Sorry for the poor photo, and the mess.

Thanks again to the wonderful support on this forum.
I’m learning all the time.

Neil.
Atom | BBC Model A | BBC Model B | Electron | Olivetti PC128S.

User avatar
anightin
Posts: 226
Joined: Thu Aug 23, 2018 1:03 pm
Location: Cambridge UK
Contact:

Re: YARRB

Post by anightin » Tue May 28, 2019 10:14 pm

Good job Neil!

With your new found skills I was wondering I could be cheeky enough to ask if you would kindly reprogram my CPLD in the same way?

I can pop it in a self addressed envelope -- happy to pay for your trouble if that helps.

Best wishes

Andy

User avatar
-B-
Posts: 130
Joined: Wed Nov 26, 2014 11:54 am
Location: Noordwijk ZH (NL) / Durham (UK)
Contact:

Re: YARRB

Post by -B- » Tue May 28, 2019 10:18 pm

anightin wrote:
Tue May 28, 2019 10:14 pm
Good job Neil!

With your new found skills I was wondering I could be cheeky enough to ask if you would kindly reprogram my CPLD in the same way?

I can pop it in a self addressed envelope -- happy to pay for your trouble if that helps.

Best wishes

Andy
You do know I live in the Netherlands and only get back to the UK a few times a year?
I can’t see your location on your profile.
Atom | BBC Model A | BBC Model B | Electron | Olivetti PC128S.

User avatar
anightin
Posts: 226
Joined: Thu Aug 23, 2018 1:03 pm
Location: Cambridge UK
Contact:

Re: YARRB

Post by anightin » Tue May 28, 2019 10:21 pm

Ah, I saw you had NL and Durham UK -- I am based in the UK.

Have now updated my profile thanks for the prompt. :)
Last edited by anightin on Tue May 28, 2019 10:22 pm, edited 1 time in total.

User avatar
-B-
Posts: 130
Joined: Wed Nov 26, 2014 11:54 am
Location: Noordwijk ZH (NL) / Durham (UK)
Contact:

Re: YARRB

Post by -B- » Tue May 28, 2019 10:28 pm

I own a place in the uk but I work in NL so I am a resident there.

I Could do it for you but surely there is someone in the uk who could help and save on postage?

Edit: ooh Cambridge, nice! The Atom’s birthplace.
Last edited by -B- on Tue May 28, 2019 10:29 pm, edited 1 time in total.
Atom | BBC Model A | BBC Model B | Electron | Olivetti PC128S.

User avatar
anightin
Posts: 226
Joined: Thu Aug 23, 2018 1:03 pm
Location: Cambridge UK
Contact:

Re: YARRB

Post by anightin » Tue May 28, 2019 10:39 pm

Yes indeed, grew up here with Acorn, should have kept the Cambridge Evening News when they covered Acorn Computer articles -- would have made interesting reading now.

If there is someone more local reading the forum and is happy to program that would be great.


Failing that, what programmer do you use Neil? I have a MacBook Pro 2013 running Windows 10 as my home PC.

Looks like a: https://www.ebay.co.uk/i/183771832101?chn=ps

Hard to justify buying a programmer for this one job I suspect.
Last edited by anightin on Tue May 28, 2019 10:43 pm, edited 2 times in total.

User avatar
-B-
Posts: 130
Joined: Wed Nov 26, 2014 11:54 am
Location: Noordwijk ZH (NL) / Durham (UK)
Contact:

Re: YARRB

Post by -B- » Tue May 28, 2019 10:54 pm

I use a Xilinx Platform usb (Chinese copy?) about £20 on eBay.

E1BB8F6A-1614-4E64-9A28-CCB092C04039.jpeg

But check the requirements for the Xilinx software. I had to use my Win10 laptop from work because my 8 year old laptop didn’t cut it. In the end, after a few attempts at installing different versions, I installed the Win7/server version but selected web pack only, after guidance from a YouTube video.

You could build a video to hdmi converter to use the programmer for a second time!
Atom | BBC Model A | BBC Model B | Electron | Olivetti PC128S.

User avatar
anightin
Posts: 226
Joined: Thu Aug 23, 2018 1:03 pm
Location: Cambridge UK
Contact:

Re: YARRB

Post by anightin » Tue May 28, 2019 11:04 pm

I'm sure it's won't take much to persuade me to eventually invest in one :D

Yes I see the copies for about half price ... hmmm... :wink:

Thanks for the hints too on setup for programming.

User avatar
roland
Posts: 3268
Joined: Thu Aug 29, 2013 8:29 pm
Location: Born (NL)
Contact:

Re: YARRB

Post by roland » Wed May 29, 2019 7:38 am

-B- wrote:
Tue May 28, 2019 10:54 pm
But check the requirements for the Xilinx software. I had to use my Win10 laptop from work because my 8 year old laptop didn’t cut it.
My 11 years old Toshiba laptop (Satellite Pro S300) with Linux Mint runs the Xilinx software without any problems :mrgreen:
256K + 6502 Inside
MAN WOMAN :shock:

User avatar
etaoin
Posts: 27
Joined: Sat Oct 06, 2018 12:34 pm
Location: Vleuten, Netherlands
Contact:

Re: YARRB

Post by etaoin » Wed Jun 05, 2019 9:29 am

roland wrote:
Wed May 15, 2019 3:10 pm
If other people want a Yarrb board then please don't hesitate to ask.
Yes please.

I'm still not allowed to send PM's on here, so if you send me a PM with other contact details, that would help me.

User avatar
anightin
Posts: 226
Joined: Thu Aug 23, 2018 1:03 pm
Location: Cambridge UK
Contact:

Re: YARRB

Post by anightin » Wed Jun 05, 2019 10:03 am

I hope I am close to being able to program the CPLD with the software and programmer I have just acquired.

However I'm pretty new to all this so if there are some experts in the audience please let me know what the next steps would be? :D

The alternative is trial and error :lol:
IMG_3607.jpeg
IMG_3608.jpeg

I have so far:

1. Installed software, licenses and drivers
2. Downloaded Hoglet's project files for the updated CPLD ready to program
3. Plugged in the platform cable -- got a windows connection beep
4. Sat staring at all the options and buttons wondering what to press next :)

User avatar
-B-
Posts: 130
Joined: Wed Nov 26, 2014 11:54 am
Location: Noordwijk ZH (NL) / Durham (UK)
Contact:

Re: YARRB

Post by -B- » Wed Jun 05, 2019 10:36 am

1) install the board in your Atom - it needs a reference voltage.
2) run iMPACT From the Xilinx suite
3) connect the cable red LED should come on
4) turn on Atom, LED should turn green
5) follow these steps (taken from Hoglet’s video to hdmi wiki)...

In iMPACT, double clock on "Boundary Scan".

Press Ctrl-I to initialize the scan chain (or right click in the Boundary Scan panel and select "Initialize Chain".

At this point a grey Xilinx chip should appear in the Boundary Scan panel, with "xc9572xl bypass" underneath. If it doesn't switch the Beeb off quickly because something is not right. Check for shorts on the CPLD soldering, or the CPLD being soldered with the wrong orientation.

An "Auto Assign Configuration Files" dialog box will come up, click [Yes].

Navigate to the JEDEC file you downloaded, select it, then click [Open].

A "Device Programming Properties" dialog box will come up, click [OK] to select the defaults.

Right-click on the green Xilinx chip and select the Program option.

Programming takes about 10 seconds, and ends with "Program Succeeded" banner in blue.

Click [x] to exit iMPACT.

A "Save Project" dialog box will come up, clock "No".

You are done programming!

I hope this is right for you. It is how I updated mine.

Neil
Last edited by -B- on Wed Jun 05, 2019 10:39 am, edited 1 time in total.
Atom | BBC Model A | BBC Model B | Electron | Olivetti PC128S.

User avatar
anightin
Posts: 226
Joined: Thu Aug 23, 2018 1:03 pm
Location: Cambridge UK
Contact:

Re: YARRB

Post by anightin » Wed Jun 05, 2019 2:54 pm

Excellent thanks Neil, I will either try and do this weekend or the following weekend but will report back.

Much appreciated :)


Andy
Last edited by anightin on Wed Jun 05, 2019 2:54 pm, edited 1 time in total.

User avatar
anightin
Posts: 226
Joined: Thu Aug 23, 2018 1:03 pm
Location: Cambridge UK
Contact:

Re: YARRB

Post by anightin » Thu Jun 06, 2019 8:14 am

BTW for those wishing to program CPLDs under Windows 10 with a 'Platform Cable USB'
Screenshot 2019-06-06 at 09.07.20.png

I used the Windows 7 2013 version from this location:

https://www.xilinx.com/support/download ... -14_7.html

There is a newer Windows 10 version but does not support older devices!


From the installation options I chose ISE WebPACK and created the free licenses online through the license manager as part of the install.

You also need to perform a 'hack' so that the iMPACT software doesn't crash on Windows 10 (I have the 64bit install):

Assuming you are using ISE 14.7 and have installed it to the default location
• Open the following directory: C:\Xilinx\14.7\ISE_DS\ISE\lib\nt64
• Find and rename libPortability.dll to libPortability.dll.orig
• Make a copy of libPortabilityNOSH.dll (copy and paste it to the same directory) and rename it libPortability.dll
• Copy libPortabilityNOSH.dll again, but this time navigate to C:\Xilinx\14.7\ISE_DS\common\lib\nt64 and paste it there
• In C:\Xilinx\14.7\ISE_DS\common\lib\nt64 Find and rename libPortability.dll to libPortability.dll.orig
• Rename libPortabilityNOSH.dll to libPortability.dll



Probably common knowledge to those on this community but it wasn't obvious to me.

HTH

Andy
Last edited by anightin on Thu Jun 06, 2019 8:16 am, edited 1 time in total.

Post Reply