Testers wanted for BBC BASIC (Z80) version 5

135678

Comments

  • Soruk wrote: »
    if I can track the tools down I should be able to replicate the build process.
    I think my BBCZ80V5.zip file contains Microsoft's M80 (MACRO-80) assembler, although curiously it doesn't seem to contain the companion L80 (LINK-80) linker.
  • BigEd wrote: »
    I'll put out some feelers about a funding drive.
    Is funding the 8" floppy transfer looking promising or not?

    Failing that, I think my job is done as far as the Z80 work is concerned, I'm not aware of anything outstanding.

    It was a nice distraction, and being able to work on something that I could actually still remember was a novelty!

    I now intend to detach myself from BBC BASIC entirely. The things I could still do (like providing some degree of support) I've been prevented from doing, and developing / modifying the newer versions is not something I am capable of any more.

    An unresolved question is what to do about the web site(s). It would probably be most sensible to close them down altogether, but I'm not particularly keen on selling the domain names for fear that somebody else might use them for purposes I don't agree with.

    Any suggestions on that front would be welcome.
  • Soruk
    edited May 28
    The websites are a useful source of documentation, that would be a terrible shame should they disappear.

    Edit: Having given this some thought, if you are willing I am prepared to host your website contents as static content (and under one of my domains, should you prefer). I have tremendous respect for you and all you have done in the BBC BASIC world, and I have learned a huge amount from you in the last 6 years or so.
  • Unfortunately, none of the tools are in the zip file...
    hu6d4atrf1vq.png
  • Hated_moron
    edited May 28
    Soruk wrote: »
    I am prepared to host your website contents as static content.
    I moved all the sites to new hosts earlier this year, needing considerable care because there are geofencing issues with the Ceefax app accessing BBC RSS data, and issues with the facilities needed to support serving Web Assembly code that uses Shared Buffers.

    Basically I split the sites between a UK-based host which would guarantee continued access to the BBC data and an offshore host with permissive PHP facilities to serve the Web Assembly code worldwide. This has to date proved a very effective and reliable arrangement.

    So it would be madness to considering moving them to new hosts again, and I strongly suspect you would not want to be troubled by all those complications. My sites are not 'static' in the sense that there's PHP code running behind the scenes to serve the necessary files and add the necessary headers!

    It's not as though the cost of hosting is an issue at all, it's not. But what is potentially an issue is giving the impression that my 'products' are well-supported when they're not. The BBC BASIC forum, which occupies a significant proportion of each site, is now dead - killed recently by the nay-sayers.

    Ten or so years ago I would have had no reason to be concerned about support. There were users of my BASICs (e.g. Jon Ripley and Malcolm Marten) who were highly knowledgeable, and perfectly capable of providing any support required. But they are long since gone, and now I am probably the the only person left able to support BB4W and BBCSDL, but sadly not for much longer.
  • Perhaps make your page display engine display a banner saying these sites are no longer maintained - a bit like some older BBC content.
  • Hated_moron
    edited May 28
    Soruk wrote: »
    Unfortunately, none of the tools are in the zip file...
    Ah OK, fair enough (I'm quite pleased really because I wouldn't have wanted to be responsible for distributing any of Microsoft's products without permission!).

    However not everybody is so scrupulous and a Google search has found M80 and L80 available in this zip (I would advise an appropriate degree of caution in downloading these files, although if only run within the RunCPM environment they should be harmless).

    Don't worry about LINK and HEXBIN, you shouldn't need them if you use M80 and L80 since I believe they can generate a .COM file directly. My only caveat would be to check that L80 can be told to position the data segment on a page boundary, which is a requirement for BBC BASIC.

    Edit: Looks like it can, use the /D switch.
  • Soruk wrote: »
    Perhaps make your page display engine display a banner saying these sites are no longer maintained - a bit like some older BBC content.
    That's quite a good idea, but how best to display a "banner" on 'plain vanilla HTML 4.0' pages is another matter! :wink:
  • Edit: Looks like it can, use the /D switch.
    Just be a little bit cautious. Virtually all the data segment is defined in the DATA.Z80 file, which declares exactly three pages (768 bytes) of data, which must lie on a page boundary (&xx00). However there's also a small amount of data, associated with the CP/M-specific customising code, declared in CMOS.Z80.

    If you find that L80 amalgamates these into one contiguous data segment, you may need to specify an address in the /D switch calculated to force BASIC's data onto a page boundary. I wouldn't expect this to be difficult, but you'll get obscure faults if you don't.
  • Soruk
    edited May 28
    I'm obviously doing something wrong - or I have the wrong version of M80 (running 'strings' on the binary in Linux indicates "MACRO-80 3.44 09-Dec-81"). The assembler complains there's no END statement, yet it is clearly there at the end of the file, and writes out just one record of object code for a 44K bit of assembly language source!
    C0>STAT EXEC.Z80
    
     Recs  Bytes  Ext Acc
      351    44k    2 R/W C:EXEC.Z80
    Bytes Remaining On C: 7256k
    
    C0>M80  
    
    *exec,exec.lst=exec.z80 /z
    %No END statement
    %No END statement
    
    No Fatal error(s)
    
    *^C
    
    RunCPM Version 6.3 (CP/M 60K)
    
    C0>STAT EXEC.REL
    
     Recs  Bytes  Ext Acc
        1     4k    1 R/W C:EXEC.REL
    Bytes Remaining On C: 7256k
    
    C0>
    
  • Hated_moron
    edited May 28
    Soruk wrote: »
    I'm obviously doing something wrong - or I have the wrong version of M80
    The version of M80.COM I have is 20,096 bytes long and is date-stamped 05/03/1995 (not that I expect that date to mean much); the EXEC.REL it creates is 6,912 bytes, if that helps.

    If you can't get it to work, try Z80ASM instead (which comes with RunCPM). If I run it here it does create a different length EXEC.REL file (6,656 bytes) but that may not be significant:
    Z80ASM EXEC.CCZ/RM
    
    (edited to use /RM switch to output a Microsoft-compatible REL)
  • Soruk
    edited May 30
    Thank you Richard, that has worked. It's good to be able to recreate the build independently of your particular setup.
    Also, through much trial and error the L80 incantation required to link as intended is:
    L80 dist,main,exec,eval,asmb,math,hook,cmos,/p:4B00,data,bbcbasic/n/e
    
    Incidentally the binary built this way is 768 bytes larger - it appears perhaps your binary doesn't save out the DATA component, as it's just space? Probably a linker quirk. I diff'ed hexdumps of the two builds and aside from this they're practically identical.

    Edit: If it's of any use. here's a Submit file that uses these tools to build:
    ERA BBCBASIC.COM
    ERA *.REL
    Z80ASM ASMB.@@Z/RM
    Z80ASM CMOS.@@Z/RM
    Z80ASM DATA.@@Z/RM
    Z80ASM DIST.@@Z/RM
    Z80ASM EVAL.@@Z/RM
    Z80ASM EXEC.@@Z/RM
    Z80ASM HOOK.@@Z/RM
    Z80ASM MAIN.@@Z/RM
    Z80ASM MATH.@@Z/RM
    L80 dist,main,exec,eval,asmb,math,hook,cmos,/p:4B00,data,bbcbasic/n/e
    ERA *.REL
    

    Edit: Amended to use the currently logged drive rather than specifically C: (which breaks on the Z80SP).
    I have successfully built this under RunCPM compiled for Linux, and on PiTubeDirect's Z80SP - the closest I have to a real CP/M system.
  • Soruk wrote: »
    the binary built this way is 768 bytes larger - it appears perhaps your binary doesn't save out the DATA component, as it's just space?
    Possibly. What I would expect to happen is that if the data are declared with DEFB, DEFW or DEFM directives, which are initialised data, they would be included in the file. But if they are declared with DEFS directives, which are uninitialised data, they wouldn't be included.

    The DATA.Z80 file uses DEFS, so I wouldn't have expected the behaviour you see, but other than making the file larger than it needs to be unnecessarily, I suppose it doesn't really matter.
  • Soruk wrote: »
    The websites are a useful source of documentation, that would be a terrible shame should they disappear.

    Edit: Having given this some thought, if you are willing I am prepared to host your website contents as static content (and under one of my domains, should you prefer). I have tremendous respect for you and all you have done in the BBC BASIC world, and I have learned a huge amount from you in the last 6 years or so.

    An important point, and a great offer. There's at least a handful of websites preserved in this way - brought under the wing of a successor - when the original is in some way retired. Even if the domains don't last forever, it's easy enough - with cooperation - to preserve the contents, which is the important thing.
  • Soruk wrote: »
    Perhaps make your page display engine display a banner saying these sites are no longer maintained - a bit like some older BBC content.
    That's quite a good idea, but how best to display a "banner" on 'plain vanilla HTML 4.0' pages is another matter! :wink:

    Just some text centred at the very top of the page, with a <HR> directive (if I remember correctly) to draw a line separating that from the remainder of the content. I don't think it needs any more than that.
  • BigEd wrote: »
    I'll put out some feelers about a funding drive.
    Is funding the 8" floppy transfer looking promising or not?

    Failing that, I think my job is done as far as the Z80 work is concerned, I'm not aware of anything outstanding.

    It was a nice distraction, and being able to work on something that I could actually still remember was a novelty!
    It's great that you were able to revisit it, and add something significant to it.

    I think we can say the funding isn't looking promising. For me, as a last resort, I'd be prepared to contribute a proportion of costs. But there are, I think, one and possibly two specific individuals who have the equipment, experience, and expertise to do the job as a favour to the community. As added benefits, they actually care about preservation and the results of capturing a floppy, and also they'd be able to capture additional floppies, if you unearth others with historic information on them. I'm happy to discuss in private messages.
  • BigEd wrote: »
    But there are, I think, one and possibly two specific individuals who have the equipment, experience, and expertise to do the job as a favour to the community. As added benefits, they actually care about preservation and the results of capturing a floppy
    Obviously I'm only going by their own blurb, and the excellent (almost instant) response I've had to my emails, but the data recovery experts (who charge £90) do seem a safer choice, not least because they'll even attempt to recover data from known damaged disks (which this isn't, but it is 40+ years since it was written).

    So I think I would want to use them - if there's any point in doing it at all, and that's where my uncertainty lies. When working on BBC BASIC (Z80) recently it never occurred to me that the Acorn Z80 Second Processor might be a target that anybody would be interested in. It's an extremely obscure product, really created only because of the BBC's insistence on the BBC Micro 'supporting CP/M'. Were any ever even sold?

    So I wonder who these people are who would be interested in running a 'version 5' BBC BASIC on a Z80 Second Processor, and why?
  • Soruk wrote: »
    Just some text centred at the very top of the page, with a <HR> directive (if I remember correctly) to draw a line separating that from the remainder of the content. I don't think it needs any more than that.
    I see. I assumed you were envisioning something more 'eye-catching'.

    If I add a banner I'm going to say that the owner of the site has died. I know that's not true - yet - but it will be soon, and when it is there won't be anybody able to change the site to say so! :smile:
  • BigEd wrote: »
    When working on BBC BASIC (Z80) recently it never occurred to me that the Acorn Z80 Second Processor might be a target that anybody would be interested in. It's an extremely obscure product, really created only because of the BBC's insistence on the BBC Micro 'supporting CP/M'. Were any ever even sold?
    Estimates are that 10000 were made, and serial numbers ranging from 04-ANC04-105415 to 1007190 have been seen. So, at least a few thousand made, and probably at least hundreds left, and of course several hundred - if not more than a thousand - users of PiTubeDirect have a z80 available, if they have something to run on it!

    I'll send a PM about the disk recovery.
  • BigEd wrote: »
    Estimates are that 10000 were made, and serial numbers ranging from 04-ANC04-105415 to 1007190 have been seen. So, at least a few thousand made, and probably at least hundreds left
    Amazing. But I bet BBC BASIC (Z80) was only ever run on a tiny proportion.
    several hundred - if not more than a thousand - users of PiTubeDirect have a z80 available, if they have something to run on it!
    I don't know what that is, I'm afraid. If it has something to do with RISC OS on a Pi that's not something I have ever taken an interest in.
    I'll send a PM about the disk recovery.
    I created this temporary Distillery account using a Gmail address which isn't monitored, so there's a risk any PM sent via the forum will vanish. If you want to send any 'private' communications use my main email address.
  • BigEd wrote: »
    I'll send a PM about the disk recovery.
    I can see a message from you, but either I'm completely blind or there's no 'Quote' button to allow me to reply to it in context! It wouldn't be the first time that this forum has misbehaved for me (it frequently grinds to a halt and times out), but if it is me being stupid please tell me how to quote your message! :blush:
  • PiTubeDirect is not related to RISC OS in any way, instead it's software + interface for a Pi that attaches to the Tube port of a BBC Micro or Master and software emulates a handful of different co-processors (often faster then the real kit being emulated!), and can be switched from one co-pro to another by a *FX command followed by BREAK. https://github.com/hoglet67/PiTubeDirect
  • Soruk wrote: »
    PiTubeDirect is not related to RISC OS in any way, instead it's software + interface for a Pi that attaches to the Tube port of a BBC Micro or Master
    So it's for use with a genuine (not emulated) BBC Micro or Master? That must limit its user base somewhat!

    I still find it hard to understand what the attraction is of running an (emulated) Z80 Second Processor, whether in conjunction with a real Beeb or an emulator like B-Em, when one could presumably use a 80186 Second Processor instead.

    And before you ask, no I don't have any plans to update BBC BASIC (86) for MS-DOS to the version 5 specification! :wink:
  • PiTubeDirect can also emulate the 80186. ;)
    7hfqc686fuzk.jpg
  • Indeed, for those of us using 8 bit Acorn micros, PiTubeDirect is a kind of cheap and fast universal second processor.
  • Soruk wrote: »
    PiTubeDirect can also emulate the 80186. ;)
    I assumed so, hence my question of why somebody would choose the Z80 emulation instead. I'm hoping the 80186 2nd Processor doesn't come with BBC BASIC at all, because the last thing I want is for BBC BASIC (86) for MS-DOS to have any 'modern' platform to keep it alive! With the Z80 version having now been updated to (close to) v5 spec the MS-DOS version is an outlier in only meeting v3 (it does have ON PROC).
  • I've not received any feedback from testing. This might mean that lots of testing has taken place but no bugs found, which would be good. But it might mean that no testing (additional to my own) has been done at all, which would mean that I couldn't take it out of beta status.
  • I have been doing a bit of testing, though swamped with childcare over half term time has not been on my side. The only issue I found so far is the now-fixed delete bug.
  • Soruk wrote: »
    The only issue I found so far is the now-fixed delete bug.
    Yes, but not a bug in BBC BASIC. The only bug to have been found since making it available for testing was the possible corruption of two bytes above HIMEM in the event of certain (unlikely) errors. I only found it by sheer fluke.

    If you wanted to target your testing, the two features which are probably most vulnerable to subtle and hard-to-find bugs are Array Arithmetic and RETURNed parameters. There are so many possible situations which can trigger bugs that exhaustive testing of those isn't possible.

    For example this (although it's is a known edge-case so should have been caught in my testing):
          PROCtest(A, B)
          ...
          DEF PROCtest(RETURN B, RETURN A)
    
    Having formal parameters which are the same as the actual parameters, but in the reverse order, is a particularly tough challenge, both when passing the parameters in and when passing them out again. Yes, it does work correctly in Brandy.
  • I have a hunch (currently at the hospital, both eyes injected... :o ) which I will check later, that your little graphic demos that also ran in Matrix Brandy use this. Ironically, this is where the Z80SP would be useful, just replacing the PLOTs with appropriate VDU25 calls would allow the graphics to work (albeit glacially compared to modern kit) and would give a visual confirmation if all was not well.