Shop OBEX P1 Docs P2 Docs Learn Events
Help compiling qz80 for ramblade — Parallax Forums

Help compiling qz80 for ramblade

nyjenyje Posts: 35
edited 2012-09-10 20:18 in Propeller 1
Hi all,
As may be understood if you have also read my 'help on zicog' thread, I just got a ramblade and want to run CP/M.
Some difficulties have come up starting zicog, (which cluso is kindly looking into) so In the meantime I decided to give Pullmoll's qz80 a try
since he & DrAcula seem to be having much success with the triblade#2 and dracblade, and it theoretically qz80 supports the ramblade.

Just read through the qz80 thread and it seems mostly developer talk and I don't want to disturb the Titans there at play wink.gif

My question is has anyone managed to compile the code for the ramblade recently?

I downloaded the source for qz80 from the top of it's thread, edited the makefile and cpm.spin to set up the #defines for the ramblade
(as best I could for a first attempt) and hit make, here's the result...

nige@wyrd:~/Microcontroller/Ramblade/qz80$ make
bstc.linux -Ox -ls -b -w0 -L../lib -o cpm cpm.spin
Found a USB Serial Device
Brads Spin Tool Compiler v0.15.3 - Copyright 2008,2009 All rights reserved
Compiled for i386 Linux at 08:17:46 on 2009/07/20
Loading Object cpm
Loading Object io
Loading Object fatfs
Loading Object RamBlade_spi_warp
Loading Object pcFullDuplexSerial2FC
Loading Object qz80

qz80(830,28) Error : Unresolved Symbol - oldx
                neg        oldx, oldx                        ' invalidate oldx
___________________________^

Compiled 5867 Lines of Code in 0.849 Seconds
nige@wyrd:~/Microcontroller/Ramblade/qz80$ 




that error seems deep in PulMoll's code, where only angels & genius dare to tread...

Ho hum looks like no CP/M for me today
Nigel

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Search Propeller Forums easily thanks to StefanL38

Post Edited (nyje) : 5/15/2010 2:10:40 PM GMT

Comments

  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-05-15 13:38
    I've been using the graphical version of BST rather than the command line. There are many command line options and I must confess I don't remember them all. I do know that it was important in the zicog to check the box "Eliminate unused spin methods".

    Looking into it in more detail, there is this code
    #ifdef DracBladeProp
    outx        jmp    #fetch                ' contains address masks for ram_address setup (overwrites jmp)
    oldx        long    -1                ' for RAM latch speed up
    #endif DracBladeProp
    
    



    but if you disable the dracbladeprop to use ramblade instead, I'm not sure if I can see where oldx is declared.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • nyjenyje Posts: 35
    edited 2010-05-15 14:01
    Thanks for looking at the issue DrAcula, But having given the code a quick perusal I came to the same conclusion wink.gif

    I have now set the option to remove unwanted spin methods and still get

    nige@wyrd:~/Microcontroller/Ramblade/qz80$ make
    bstc.linux -Orx -ls -b -w0 -L../lib -o cpm cpm.spin
    Found a USB Serial Device
    Brads Spin Tool Compiler v0.15.3 - Copyright 2008,2009 All rights reserved
    Compiled for i386 Linux at 08:17:46 on 2009/07/20
    Loading Object cpm
    Loading Object io
    Loading Object fatfs
    Loading Object RamBlade_spi_warp
    Loading Object pcFullDuplexSerial2FC
    Loading Object qz80
    
    qz80(830,28) Error : Unresolved Symbol - oldx
                    neg        oldx, oldx                        ' invalidate oldx
    ___________________________^
    
    Compiled 5867 Lines of Code in 0.978 Seconds
    nige@wyrd:~/Microcontroller/Ramblade/qz80$
    



    since i #define RamBladeProp at the top of cpm.spin, how is this code attempting to compile?

    only time, wisdom or much digging will tell wink.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Search Propeller Forums easily thanks to StefanL38

    Post Edited (nyje) : 5/15/2010 2:11:33 PM GMT
  • pullmollpullmoll Posts: 817
    edited 2010-05-15 16:59
    nyje said...

    qz80(830,28) Error : Unresolved Symbol - oldx
    neg oldx, oldx ' invalidate oldx

    This should be enclosed in a
    #ifdef DracBladeProp
    neg oldx, oldx
    #endif
    Because it is just needed for an optimization of the memory access on the DracBlade. I haven't compiled qz80 for the RamBlade for some time, this is why this piece of code slipped in. If you checked out qz80 by CVS, you just need to update now.

    Edit: Hmm.. my RamBlade isn't doing anything anymore. Last time I tried it the boot loader message appeared on the serial port, now it is quiet :-/

    Edit 2: Please try the new version 0.9.29. It has combined SPI SD + XMM for the TriBlade, RamBlade and DracBlade now. The first two are untested, so you would be a big help if you could give it a try.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 5/15/2010 7:34:24 PM GMT
  • nyjenyje Posts: 35
    edited 2010-05-15 20:58
    Wow, thanks Pulmoll, Will test it the moment I get home from work.
    (Eight hours can seem a long time) wink.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Search Propeller Forums easily thanks to StefanL38
  • Cluso99Cluso99 Posts: 18,069
    edited 2010-05-16 00:38
    It would be great to get this working on the RamBlade Nigel. I just have not had enough time and the development of pullmoll's code has been at such a frantic pace I thought I would wait until things settled a bit. Just off to dig out an older version of ZiCog so I can revert to the old fsrw (femto) drivers to try.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
    · Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
  • nyjenyje Posts: 35
    edited 2010-05-16 05:46
    Thanks pilmoll, It compiles now, will have time for testing in a few hours


    Edit (a few hours later)>

    Well it starts, but I guess my uSD is not formatted ok...

    used WIN to format FAT16 with 32k cluster size, got the following...
    ----------------------------------------
    
    PropCommand (RamBlade) V0.060
    
    SD:>Hit <esc> to bypass autoexec.bat,etc
    
    SD:>dir 
    
    Directory of SD
    
      33554432 A.DSK        
         11876 BOOTPROP.BIN 
         22000 CPM.BIN      
         11876 PROPCMD.BIN  
    
    SD:>spin cpm 
    SIO initialized, 5 cogs free.
    
    qZ80 I/O starting...
    
    Volume serial #FC30-3DA9, label NO NAME    
    
    , sector 070200, size 514.9MB, 2060-02-23 04:00:00
    
    A.DSK failed: -1
    
    A.DSK failed: -1
    
    
    
    




    hmmm those file sizes seem to disagree somewhat... Result Inconclusive wink.gif will try again tomorrow with another card

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Search Propeller Forums easily thanks to StefanL38

    Post Edited (nyje) : 5/16/2010 11:54:16 AM GMT
  • pullmollpullmoll Posts: 817
    edited 2010-05-16 12:00
    nyje said...

    Volume serial #FC30-3DA9, label NO NAME

    , sector 070200, size 514.9MB, 2060-02-23 04:00:00
    [noparse][[/noparse]/code]


    hmmm those file sizes seem to disagree somewhat... Result Inconclusive wink.gif will try again tomorrow with another card

    This should display BOOT.DSK. Do you have that file on the SD card?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • nyjenyje Posts: 35
    edited 2010-05-16 12:41
    I do now... slightly better... How should the uSD be formatted? fat/fat32 cluster size etc?
    that may be the issue...
    A.DSK came from the zip at the top of the thread.
    BOOT.DSK from your post is only 256bytes long. Is that Normal?

    ----------------------------------------
    
    PropCommand (RamBlade) V0.060
    
    SD:>Hit <esc> to bypass autoexec.bat,etc
    
    SD:>dir 
    
    Directory of SD
    
      33554432 A.DSK        
         11876 BOOTPROP.BIN 
         22000 CPM.BIN                                                              
         11876 PROPCMD.BIN                                                          
           256 BOOT.DSK                                                             
                                                                                    
    SD:>spin cpm                                                                    
    SIO initialized, 5 cogs free.                                                   
                                                                                    
    qZ80 I/O starting...                                                            
                                                                                    
    Volume serial #FC30-3DA9, label NO NAME                                         
                                                                                    
    BOOT.DSK, sector 010380, size 256, 2010-05-16 15:37:06                          
                                                                                    
    A.DSK failed: -1                                                                
                                                                                    
    A.DSK failed: -1                                                                
                                                        
    
    
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Search Propeller Forums easily thanks to StefanL38
  • heaterheater Posts: 3,370
    edited 2010-05-16 12:59
    The boot code is only 256 bytes long. It is run from address FF00.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • pullmollpullmoll Posts: 817
    edited 2010-05-16 18:06
    nyje said...
    I do now... slightly better... How should the uSD be formatted? fat/fat32 cluster size etc?
    that may be the issue...
    A.DSK came from the zip at the top of the thread.
    BOOT.DSK from your post is only 256bytes long. Is that Normal?

    The cluster size and FAT type is not important. The code supports all kinds of settings. The second find file goes wrong, which strikes me odd, as for the first time it works (BOOT.DSK). Yes, the boot is just 256 bytes; even less actually.
    At the moment I have no idea how to help your case. There has to be something that goes wrong after loading the first file, but I don't know what that could be.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • nyjenyje Posts: 35
    edited 2010-05-17 08:57
    Thanks for the response Pulmoll, Am working with cluso99 off forum to troubleshoot the hardware.

    Hopefully I'll be back soon to volunteer my services as ramblade tester.

    In the meantime, got my soldering kit out for a little work on my PSU...
    and I just realized I keep my metal sponge for cleaning the soldering iron tip inside
    a Pulmoll Lemon and Vitamin C tin wink.gif

    Image link (right click, view image) : znkojsUUHAymwB9QQUxMiA?feat=directlink

    Thought it may amuse you wink.gif

    Nige.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Search Propeller Forums easily thanks to StefanL38

    Post Edited (nyje) : 5/17/2010 12:56:54 PM GMT
  • nyjenyje Posts: 35
    edited 2010-05-17 12:54
    BTW now have Zicog running on the ramblade, will find some time in the next few days to try qz80 on my ramblade.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Search Propeller Forums easily thanks to StefanL38
  • pullmollpullmoll Posts: 817
    edited 2010-05-17 13:14
    nyje said...
    Thought it may amuse you wink.gif

    Now you may guess how I got my nick name [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • heaterheater Posts: 3,370
    edited 2010-05-17 13:58
    nyje: So what did you to to get the RamBlade running. Others will want to know. Or is this a trade secret unit Cluso has sanctioned the fix?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • nyjenyje Posts: 35
    edited 2010-05-17 22:00
    @heater
    Sadly after two days of intensive gremlin chasing together off the forums, my particular ramblade is winging its way back to cluso labs for further testing...
    Lucky for me the kind soul who bought me the board donated me his, which runs zicog just fine off all my memory cards 'out of the box'... I'm sure cluso will post as/when/if he finds the issue.
    For now though, it's all smiles chez moi wink.gif

    Thanks to all for taking an interest and helping us try to track down the issue.

    Btw, zicog is great, it's intriguing to run cpm on such a tiy machine...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Search Propeller Forums easily thanks to StefanL38
  • Cluso99Cluso99 Posts: 18,069
    edited 2010-05-17 23:26
    Nothing secret. Thanks to Nigel for spending the time to check each new test rev of code I emailed him. He spent quite some time with me emailing back and forth.

    For the record, there seems to be a timing error somewhere that shows up on Nigels RamBlade. RossH has also seen a problem and it is likely related. A replacement has been tested and packed and will be in the post today. The problem appears not to be in the overclocking as each version of code I sent to Nigel I ran on my RamBlade. I tried reverting to the older fsrw code and it worked on mine but not on Nigels. We tried a few things with the power supply to no avail. Next we tried reverting to 5MHz and guess what, Nigel's worked and mine broke!!! Lastly Nigel tried his friends RamBlade and it worked.

    So I can make one fail at 5MHz which fails at 6.5MHz and Nigels is winging its way home so I can be sure I resolve the problem. I expect that I can now fix the problem since my RamBlade fails at 5MHz.

    As BradC often says, the hardest part is trying to reproduce the problem.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
    · Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
  • heaterheater Posts: 3,370
    edited 2010-05-18 04:34
    nyje: "zicog is great, "

    Thank you for that. I'm sure you will find qz80 a blast to. PullMoll has been fiendishly racing ahead of ZiCog what with MP/M and such running there. I'm struggling to find the time to haul ZiCog up to that level.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Toby SeckshundToby Seckshund Posts: 2,027
    edited 2010-05-18 09:25
    Heater

    The "Zicog" project fired off so many imaginations and so deserves to be classed as "Great".

    With Pullmoll's Z80 finishing touches I have been so fortunate to hang onto all your shirt tails and get the "Nascom" back again.

    So Heater, Clusso, Dr Acula Pullmoll and many others, thankyou.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Style and grace : Nil point
  • nyjenyje Posts: 35
    edited 2010-05-18 10:40
    @Toby
    I could not agree more, "Standing on the shoulders of giants" springs to mind...

    @All
    I would like to take a moment to thank all the creative Titans on this forum (you know who you are),
    having lurked here for almost a year, I still marvel at the helpful, 'can-do' and 'never say impossible' attitude of the people herein.

    You have all inspired me like nothing else has, since I got my first computer back in the 80's wink.gif
    I have never before felt such a desire to be a part of an on-line community and hope I can give back or pass on to others something of the 'The Joy of Prop'

    I raise a glass to you all, and most of all to Chip, for creating this incredible device.

    Long live the Propeller, Parallax and the Propeller forums wink.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Search Propeller Forums easily thanks to StefanL38
  • Cluso99Cluso99 Posts: 18,069
    edited 2010-05-19 09:34
    Thanks Toby. I admired heater's initial ZiCog work. Pullmoll has just taken it to other places so quickly that neither heater nor I have been able to keep up. I have just stood by and watched with more admiration. The pace was so frenetic that there was no point in getting it running on until it (or should I say "they" for emulations) settled down. This has become a real community project, with both hardware and software variants.

    Meanwhile, in the background are other great projects that can be used by our hardware too... Catalina and Catalyst, PBasic and PropBasic, and Sphinx.

    And yes, a big thankyou to Chip for making this incredible device. It is still heading in places I am certain Chips never thought of.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
    · Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
  • Cluso99Cluso99 Posts: 18,069
    edited 2012-09-10 20:18
    I have just received a report that Pullmoll's code is not working on the RamBlade with a similar error to the ones above (A.DSK failed -1).

    So, it may be prudent to advise what the problem was with the RamBlade above that failed. It was not hardware, but in fact software - namely the sram driver. It was a timing issue that worked with some sram chips and not others. I had incorrectly calculated where the signal was being output within the instruction pipeline, causing a timing violation in the sram. It was on the borderline where some sram chips worked and others did not, and it was pretty much a go or no go for each chip, not an intermittent problem.

    What I did was release a new software driver for the RamBlade. This also fixed a problem we later had with Catalina. The driver is on the RamBlade thread.

    As for Pullmoll's code, I need to see where he used the driver to see what fix is required, if indeed that is the problem. Does anyone have a working version of Pullmoll's code for the RamBlade?
Sign In or Register to comment.