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 18th Apr 2021, 6:27 pm   #21
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Re: PCB design -- on a BBC Micro!

Quote:
Originally Posted by Slothie View Post
Ah! Success. I can't get it to auto-boot, possibly this is some configuration problem with the emulator, but *EXEC !BOOT causes it to run, and entering the command D draws a picture of a board (attached).
That's good! You might want to set up your emulator as a Master 128, which will run in a better graphics mode.

The file D.RPA1C which is also on the disc is a preamplifier for connecting a Chinese "red stylus" cartridge to a record player with an EL84 + selenium rectifier amplifier. The components are dispersed about the screen, but nothing is wired yet.

For a real treat, I'm just working on a BCP version of my "Pocket Particle Accelerator" right now ..... in case you found the "B9A21" footing and wondered what it was doing!
Quote:
Originally Posted by Slothie View Post
I don't mind testing I've got a BBC in storage waiting to be revived, so any learning I can get the better. I just wish I could get the stack of BBC manuals I have out of storage so I could understand things more! Perhaps I will need to look to see if some scoundrel has uploaded a PDF
The BBC Micro User Guide and Advanced User Guide are definitely available online.
Quote:
Originally Posted by Slothie View Post
I do appreciate how much effort it takes to write software for the old 8-bits, there's always the 3-way stretch on functionality, speed and memory usage!
Oh, yes! And you can only fit enough source code into RAM at a time to assemble about 2KB of machine code. The main development work is now being done using the excellent BeebAsm, which I can't praise highly enough; but I also came up with a way to "keep it real" by building all the code on a real Beeb. This is orders of magnitude slower than doing it all on the host side, though .....
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline  
Old 18th Apr 2021, 6:35 pm   #22
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: PCB design -- on a BBC Micro!

I do recall back in the day while I was at university, one of my fellow students was developing an editor in C for the Beeb, and the compiler he had ran off the floppy drive and you could compile from source on the disk and it would grind and churn that floppy for hours while it compiled!
Slothie is offline  
Old 25th Apr 2021, 11:10 pm   #23
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Re: PCB design -- on a BBC Micro!

I've just uploaded a new version of the main disc to my GitHub site (same download link). This has some more extensions to the W command, including -- at long last -- the ability to unroute a track! It's not a proper route editor, but at least it makes it a bit less unusable. There is more information on the Wiki there.

And then I probably will add some more footprints necessary to create the "Pocket Particle Accelerator" project ..... which might in turn lead to some changes to the utilities disc. Stay tuned .....
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline  
Old 27th Apr 2021, 5:36 pm   #24
Timbucus
Octode
 
Join Date: Mar 2019
Location: Barry, Vale of Glamorgan, Wales, UK.
Posts: 1,362
Default Re: PCB design -- on a BBC Micro!

I am still trying to find a way to get this on my BBC Core on my Next so I can try it as my real BBC is currently awaiting repair. I need to sort out adding new disk images to the virtual disk.
Timbucus is offline  
Old 27th Apr 2021, 5:42 pm   #25
SiriusHardware
Dekatron
 
Join Date: Aug 2011
Location: Newcastle, Tyne and Wear, UK.
Posts: 11,485
Default Re: PCB design -- on a BBC Micro!

Quote:
my real BBC is currently awaiting repair.
Sounds like the makings of a new epic repair thread.

I really must fish out my two, re-Rifa the PSUs and see if they still work. They did when I put them away, but that may have been 20 years ago now.
SiriusHardware is offline  
Old 27th Apr 2021, 6:20 pm   #26
ortek_service
Octode
 
ortek_service's Avatar
 
Join Date: May 2018
Location: Northampton, Northamptonshire, UK.
Posts: 1,394
Default Re: PCB design -- on a BBC Micro!

Apart from the PSU's mains-filter capacitors suffering from the infamous case-cracking with age, fortunately Beeb's are generally very-reliable even a long-time after they were made. And all the large IC's are usually socketed, so easily-swapped if the odd one does fail.
I've not encountered multiple IC failures on these, that are more common-place on Spectrums (Usually the DRAM's), C64's / VIC-20 (Usually Commodore-made IC's) or certain PET's........
ortek_service is offline  
Old 27th Apr 2021, 8:17 pm   #27
Timbucus
Octode
 
Join Date: Mar 2019
Location: Barry, Vale of Glamorgan, Wales, UK.
Posts: 1,362
Default Re: PCB design -- on a BBC Micro!

Quote:
Originally Posted by SiriusHardware View Post
Quote:
my real BBC is currently awaiting repair.
Sounds like the makings of a new epic repair thread.

I really must fish out my two, re-Rifa the PSUs and see if they still work. They did when I put them away, but that may have been 20 years ago now.
Maybe at some point but, I have another machine I am working on first... and I will probably come here for help as it is very interesting one...
Timbucus is offline  
Old 3rd May 2021, 6:07 pm   #28
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Re: PCB design -- on a BBC Micro!

OK; here's what I mentioned in this thread .....

The first thing I did was to create a wiring list from the diagram. If you've ever used the circuit simulation program SPICE, you'll know about this bit. If you have a program for drawing schematics on screen and entering the corresponding wiring lists straight into SPICE, you can use that and just tweak the file afterward to insert the footprints BCP requires. Otherwise, assign every node on the diagram a number. Each line ("card", in SPICE-speak) of the file contains a designator, the node numbers to which each pin is connected and the component value (which BCP actually ignores, but a SPICE simulator cares). BCP also needs to know what footprint you want to use for each component; we append this to the line with * as a delimiter, and SPICE will treat everything after the star as a comment.

I have left the circuit from the GitHub page unaltered, except for R1 which seemed an excessively high value, and added ZD1 in parallel with R2; and used an 8-pin miniature header (2.54mm. pitch) for the Raspberry Pi side, with a 6-pin standard header (5.08mm. pitch) for the PET side. The transistors used are BC547 and BC557, which have the base in the middle so I used the TO92CBE footprint. There is also a TO92BCE in the library if you are using different transistors.

Here is what the wiring list looks like:
Code:
CN1 1 3 5 10 11 12 15 0 MOLEX8X.1 * HM8X1
R1 1 2 220 * RQ4X1
D1 2 0 LED5RED * LED5
CN2 0 18 4 8 14 17 MOLEX6X.2 * HS6X1
R2 3 0 10K * RQ4X1
R3 3 4 22K * RQ4X1
ZD1 4 0 BZV79C3C3 * DS4X1
R4 5 6 10K * RQ4X1
R5 10 7 10K * RQ4X1
R6 10 9 10K * RQ4X1
T1 8 7 6 BC557 * TO92CBE
T2 8 9 0 RC547 * TO92CBE
R7 12 11 10K * RQ4X1
T3 11 13 0 BC547 * TO92CBE
R8 13 14 10K * RQ4X1
R9 15 19 10K * RQ4X1
T4 17 16 0 BC547 * TO92CBE
It's saved in the disc image below as W.PDS0A as in raspberry Pi DataSette, first ever version.

Unfortunately, this is still not quite right. The program WL2DES would protest at this, because it contains some new footprints that are not in the file D.FTPRNT. So first we need to add some lines to the program FPGEN, as follows:
Code:
22560DATA"HM8X1",8,-50,-400,50,400,200,350,3,1,2
22570DATA0,350,5,5,10
22580DATA0,250,5,5,10
22590DATA0,150,5,5,10
22600DATA0,50,5,5,10
22610DATA0,-50,5,5,10
22620DATA0,-150,5,5,10
22630DATA0,-250,5,5,10
22640DATA0,-350,5,5,10
22650DATA"M",-50,-400
22660DATA"C",50,400
22670DATA"HS6X1",6,-100,-600,100,600,250,500,3,1,2
22680DATA0,500,4,4,12
22690DATA0,300,4,4,12
22700DATA0,100,4,4,12
22710DATA0,-100,4,4,12
22720DATA0,-300,4,4,12
22730DATA0,-500,4,4,12
22740DATA"M",-100,-600
22750DATA"C",100,600
22760DATA"DS4X1",2,-265,-40,265,40,-100,140,0,1,6
22770DATA-200,0,1,1,8
22780DATA200,0,1,1,8
22790DATA"M",-80,-40
22800DATA"C",80,40
22810DATA"M",70,40
22820DATA"D",70,-40
22830DATA"M",60,-40
22840DATA"D",60,40
22850DATA"LED5",2,-100,-100,100,100,-200,200,0,1,8
22860DATA0,50,5,5,8
22870DATA0,-50,5,5,8
22880DATA"M",-54,-88
22890DATA"D",-100,-42
22900DATA"D",-100,42
22910DATA"D",-42,100
22920DATA"D",42,100
22930DATA"D",100,42
22940DATA"D",100,-42
22950DATA"D",54,-88
So, add the above lines to FPGEN; save it; RUN it; and assuming everything worked OK, copy the command shown to save the footprints library you have just generated. The most likely error is "Type mismatch" indicating the program got a string where it was expecting a number, or vice versa; check and double check nothing has been missed out and no extra commas added.

Now you are ready to run WL2DES, and load in the saved wiring list W.PDS0A. Just accept the default size of &100 for each section to begin with. If the program sits waiting for input at the end, press RETURN ..... it means there was no blank line on the end of the file, so now it's asking you to supply the rest of the data.

Here is a link to a disc image with the design program and just enough of the utilities disc to play along at home: https://github.com/JulieMontoya/BCP_..._datasette.ssd

I've actually already done all the necessary steps for getting the design D.PDS0A loaded up. But I have left an earlier version of FPGEN on the disc FPGEN0. You can run that and save the "broken" D.FTPRNT it generates over the top of the "complete" one; then watch WL2DES fail! Or, you can run
Code:
*EXEC L.MORE_FP
to add the extra lines you would need to add to create the extra footprints, already checked and error-free; then RUN the program again and save the new D.FTPRNT file. Run WL2DES again. This time it should succeed.

If you are impatient and just want to see the design in BCP, then press shift+BREAK. It's not that impressive as everything is still at the origin, waiting to be moved into place. But that's what I will be doing next ..... with M CN1 to move CN1 into place, 0 to select 100 thou movement steps, Z X : / for directions, RETURN to place; then MN repeatedly to move the next component in the list, and so forth until it gets back around to CN1 again.


By the way, if you are playing along at home, you probably will need to
Code:
*LOAD M.PAGEA
at some point. This is a copy of the aperture code and the workspace variables used by the design program and its libraries. This is loaded in !BOOT for the design program, but I can't remember if anything else needs it. If you get odd error messages like "at line 100", then *LOAD M.PAGEA should fix them.
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline  
Old 3rd May 2021, 11:49 pm   #29
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Merge of 29-32

Oops ..... R9 pin 2 should go to node 16 (), not 19. Corrected version now uploaded to GitHub.

And now I've spotted another wiring list error. Need food before fixing it, though!

EDIT:
ZD1 should have its anode to ground (node 0) and cathode to node 3, and not the way it was in the above wiring list. You probably have parts roughly placed and maybe even some tracks routed, all a bit bodgily but still far to nice to spoil by starting again from scratch, for an error which is literally just two wrong bytes. And I haven't yet written a way into the program to alter the wiring list in an active design. Never mind. We will just have to hack into the database and change it that way! The maths library includes a static jump table, effectively providing a crude API for the maths, database and graphics libraries. (WL2DES uses this to parse lines within the wiring list ..... that probably needs to be rewritten in assembler when the database library is next updated.) This is good enough to help us find out exactly which two bytes in memory we need to alter to correct the wiring error.

Type Q (or any other unrecognised command) to exit the design program and get back to a BASIC prompt, and press CTRL+L to clear the text window so you can see what is going on. (You can even press CTRL+Z, CTRL+L to go full screen, if you like.) Note that ZD1 is the seventh part in the wiring list above (which is indexed starting from zero, so it will be number 6). Enter
A%=6:CALLselect_part
Now we have selected part 6 in the wiring list, which we think is ZD1, but we can make sure by entering
CALLdisp_desr
It should display "ZD1" without starting a new line, so the prompt will move to the right. (Don't continue if you see anything different.) Enter
P.~FNpeek(wlb)
This should display a 4-digit hex number; mine said 22BA so that's what I will use here, but change it to whatever yours said. That is the base address of the wiring data for the part whose index is 6, which is ZD1. Enter
P.?&22BA,?&22BB
to see the current contents of that address and the following one; the screen will show two numbers, which should be 4 and 0. (Again, don't continue if you see anything different.) These are the node numbers for the pins of ZD1. So now all we need enter is
?&22BA=0:?&22BB=3
to connect pin 1 to node 0 and pin 2 to node 3. Lastly press f1 to restart the program, enter D to redraw the design; and Save the modified design. Enter R ZD1 if you like, to prove that the wiring list has been changed.

EDIT:
Just uploaded another new version to GitHub, which incorporates the corrected wiring list data in the saved file D.PDS0D and also removes some debugging information which perhaps we don't need anymore
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.

Last edited by Radio Wrangler; 4th May 2021 at 2:02 pm. Reason: replies to self merged
julie_m is offline  
Old 4th May 2021, 12:07 am   #30
Timbucus
Octode
 
Join Date: Mar 2019
Location: Barry, Vale of Glamorgan, Wales, UK.
Posts: 1,362
Default Re: PCB design -- on a BBC Micro!

I really need to fix my BBC now - maybe I can take a quick look at it tomorrow...
Timbucus is offline  
Old 4th May 2021, 1:05 am   #31
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Re: PCB design -- on a BBC Micro!

BCP will run fine in an emulator if you can't get a real Beeb working -- I've actually developed it entirely under emulation (gradually moving bits of the work over to the host side, as I got more comfortable with the tools there). You don't even need to download a BBC emulator -- there is a website where you can run a fully-functional BBC emulator in a browser!
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline  
Old 9th May 2021, 10:46 pm   #32
Kyri
Tetrode
 
Join Date: Mar 2021
Location: Lancashire, UK.
Posts: 57
Default Re: PCB design -- on a BBC Micro!

This is a very interesting thread, thank you. I wish I still had my BBC micro, not had it for a long long time now. I seem to remember using a *fx command to make the disc drive run at warp speed though.
Kyri is offline  
Old 9th May 2021, 11:49 pm   #33
julie_m
Dekatron
 
Join Date: May 2008
Location: Derby, UK.
Posts: 7,735
Default Re: PCB design -- on a BBC Micro!

I've had a bit of a mishap -- I discovered a bug in a new function I was adding to delete a route from anywhere in the database, not just the most recent, which messed up the design I was doing Fortunately, I was able to spot how it happened and fix the problem, and I think I can set everything back to the way it should be without redoing everything completely from scratch.

Without going into too much detail (see the GitHub page for that), routes are stored as a flat list of waypoints which may be X,Y co-ordinate pairs, layer changes, and a fixed-length portion with an offset into the list of waypoints, length and connected node number; and when closing up the gap in the waypoints where a route was deleted by copying down the next route over it and so on up to the end, I was storing the length where the node number should have gone.

It's actually a good job I have spotted this now, as it would have messed up the bit I was going to add next!

Also, there is something not quite right with the photoplotting program; it produces the Gerber files OK, but bombs out creating the drill rack. There's a feature I have to add to that anyway ..... I was a bit hasty getting it together the first time, but it needed to be done at all to see how it could have been done better.

Still, onwards and upwards; and I'll come out of this with it able actually to edit routes once they are laid down!
__________________
If I have seen further than others, it is because I was standing on a pile of failed experiments.
julie_m is offline  
Old 18th May 2021, 8:51 pm   #34
GeraldSommariva
Pentode
 
GeraldSommariva's Avatar
 
Join Date: Mar 2021
Location: Liphook, Hampshire, UK
Posts: 125
Default Re: PCB design -- on a BBC Micro!

Would this run on a BBC emulator? I don't have a working BBC but the program looks good.
GeraldSommariva is offline  
Old 20th May 2021, 9:32 am   #35
Slothie
Octode
 
Join Date: Apr 2018
Location: Newbury, Berkshire, UK.
Posts: 1,287
Default Re: PCB design -- on a BBC Micro!

Quote:
Originally Posted by Dataout View Post
Would this run on a BBC emulator? I don't have a working BBC but the program looks good.
Yes, I've found it works on b-em on Linux, I presume that the windows build will work fine. There are a couple of other BBC emulators too.
Slothie is offline  
Closed Thread

Thread Tools



All times are GMT +1. The time now is 12:10 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.