Shop OBEX P1 Docs P2 Docs Learn Events
Prop II on-chip development question - Page 9 — Parallax Forums

Prop II on-chip development question

1679111216

Comments

  • Cluso99Cluso99 Posts: 18,069
    edited 2009-11-26 15:51
    @dMajo: the movs/movd/movi instructions can set the z flag if the result is 0.

    Location $0 should definately not be used. We use this to store offset tables so that we do not have to add an offset to the start of the table. As I said above...
    org $0
    table jmp #next
    long $xx
    long $yy
    .....

    next mov table, table0 'place the first table into $0
    .....

    mov offset, #10 'set the table offset into offset
    jmp offset 'indirect jump to the decoded routine

    If you were to overwrite $0 then we would have to add the table location to offset as well.

    @Chip: You can use 6 different resistors on a single pin to give 6 different states by testing the input using the internal 10K & 1K5 pullups and pulldowns. Values are approximately 20K, 5K 680R as either pullup or pulldown. This could be used to determine a boot option such as order to boot, internal IDE, etc.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    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)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • AribaAriba Posts: 2,690
    edited 2009-11-26 16:00
    I've also missed a COG_RESTART instruction sometimes. This is just a kind of
    very simple interrupt possibility. I will give you 3 examples where it can be useful:

    1) Debugging! With my Assembly code debugger (PASD) it is not possible to stop the
    execution, manually and look at the register values. In Prop1, the only way to stop is
    COGSTOP and then COGINIT which reloads all the cog ram, and the current values at stop
    are lost.
    A COGRESTART would allow to keep the values in the cog ram.

    2) Break an assembly loop, which is as fast as possible. I tried to sample some pins to
    a circular buffer as fast as possible (for a scope). With a cogrestart, it would be
    possible to break this sampling loop by another cog, when a specific trigger occures,
    and let the cog then write the sampled data from cog ram into hubram.
    Now this is only possible with polling in the loop, which slows down the sampling loop.

    3) Timeout at WAITPEQ, WAITPNE, WAITVID and other endless loops. You can write a
    <jump to the timeout-handler> in cog addr 0, and then start another cog for the timeout
    before the critical loop.
    When the second cog reaches the timeout, it restarts cog1 which has the effect of a jump
    to the timeout handler.

    With Prop2, which is 8 times faster, point 2) may be not so important. And point 3) is
    solved for WATPxx, as I read before in this thread.
    But for debugging, and when you go to the limits of speedy loops, the use of a second cog,
    to interrupt the first one (without loosing the data in cog ram) would be very useful.

    Andy
  • ErNaErNa Posts: 1,752
    edited 2009-11-26 16:00
    Cluso99 said...
    Chip:

    Since you are implementing 3 x 32 bit ports and an 8 bit port for "D", could D be fully implemented as 32 bits, but only 8 with external drivers? This way we would have 24 bits on port D for cog to cog communications. Another use could be the counters where currently we have to output on one pin as a clock which gets used internally, but wastes a pin.

    And what about having an address to which cog to send a message and a kind of arbitration, so you just output (address/value). Like the links in good old transputers?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    cmapspublic3.ihmc.us:80/servlet/SBReadResourceServlet?rid=1181572927203_421963583_5511&partName=htmltext
    Hello Rest Of The World
    Hello Debris
    Install a propeller and blow them away wink.gif
  • dMajodMajo Posts: 855
    edited 2009-11-26 16:09
    Sapieha, I have thought 0 is ok but it could be configurable or it could be the last one (eg. 495 actually on prop1).

    Have you read my considerations about this? In your idea will the CogReset· reset also dir/out registers or only PC. Isn't better just to "cont-inue" a cog that have self-paused?

    org 0
            jmp next
    halt:   pause            ; waits till some other cog execute continue
    next:   program code
                .
                .
                .
                .
           <mov dira, #0>    ; optional 
           <mov outa, #0>    ; optional
            jmp halt
    

    Isn't this equivalent? And have several applications

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    · Propeller Object Exchange (last Publications / Updates);·· Vaati's custom search
  • tonyp12tonyp12 Posts: 1,951
    edited 2009-11-26 16:31
    >Chip Gracey (Parallax) said..
    >From what I gather, the toggle rate for such is in the GHz. That's beyond our 3.3V I/O capability.

    Lowest pixel clock rate for hdmi is 25Mhz,
    so if you somehow could get Waitvid to be programmed to send burst of 10bit data at 25mhz

    When we could have 720x480p of pure digital display.

    PropII will be around to 2020, Analog VGA and PS2 etc will long gone by then.

    http://www.hdmi.org/download/HDMISpecification13a.pdf
  • cgraceycgracey Posts: 14,259
    edited 2009-11-26 16:38
    BTW: @Chip, how is the instruction fetching of the new PropII made? It will be still necessary to interpose a line between the modifier and the modified code lines?

    Yes, when you modify an instruction ahead, you must execute one in the middle, like this:

    ········ add···· :s,#1

    ········ nop···· 'better yet, something useful

    :s······ mov···· outa,0

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.
  • cgraceycgracey Posts: 14,259
    edited 2009-11-26 16:46
    Cluso99 said...


    @Chip: You can use 6 different resistors on a single pin to give 6 different states by testing the input using the internal 10K & 1K5 pullups and pulldowns. Values are approximately 20K, 5K 680R as either pullup or pulldown. This could be used to determine a boot option such as order to boot, internal IDE, etc.
    That's a neat idea! What I'll try to do is make some graduated resistances for the pull-ups/pull-downs, and also have a proper VDD/2 threshold sensor. Then, like you said, a single resistor could provide perhaps 4 levels, or two bits, then doubling that for high vs. low. I think we could get 3 bits out of one pin that way. Eight basic configuration options for the IDE should be enough. So, one pin is all that's needed.

    ...In thinking about this more: over process, temperature, and voltage, we could not rely on the chip having better than +/-20% absolute tolerance, which is pretty poor. However, if rather than make the graduated values follow an R, 2R, 3R, 4R...) pattern, we could do (R, 2R, 4R, 8R...) and easily get 16 levels per high or low resistor attached. 5% tolerant resistors would be fine, too.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.

    Post Edited (Chip Gracey (Parallax)) : 11/26/2009 5:04:15 PM GMT
  • SpreaderSpreader Posts: 3
    edited 2009-11-26 16:49
    Hi Chip, congratulations to you and your team for a magnificent device that truly breaks the mould. do you have any tentative dates yet for the PII release?
  • cgraceycgracey Posts: 14,259
    edited 2009-11-26 16:54
    Phil,

    My resistor calculations didn't make complete sense, because I forgot to account for the impedance of the tristrate resistor drivers. They add the extra ohms that would result in a 1.0V output at DAC level $30.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.

    Post Edited (Chip Gracey (Parallax)) : 11/26/2009 11:56:58 PM GMT
  • ErNaErNa Posts: 1,752
    edited 2009-11-26 16:59
    A way to measure the difference between two signals could be prepared: I face the problem to measure a high voltage (battery 24V) and the current through a high side shunt. How to do that? As the battery voltage is only changing slowly, while the shunt voltage changes fast, I use two of the props ADC's. Now I connect a low pass to the compensating output of the battery ADC. The pulses are integrated and the cap charges to a voltage proportional to the battery voltage, but negative in relation to the comparator level of the input. This voltage is fed into the shunt ADC, so the ADC is measuring the difference between the shunt terminals. The precision is mainly effected by the precision of the input resistors, the resolution is not to high, but we have a "differential" input. Maybe, the low pass can be integrated if there is a way to do it with a little capacitor.
    ErNa

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    cmapspublic3.ihmc.us:80/servlet/SBReadResourceServlet?rid=1181572927203_421963583_5511&partName=htmltext
    Hello Rest Of The World
    Hello Debris
    Install a propeller and blow them away wink.gif
  • cgraceycgracey Posts: 14,259
    edited 2009-11-26 17:10
    tonyp12 said...
    >Chip Gracey (Parallax) said..
    >From what I gather, the toggle rate for such is in the GHz. That's beyond our 3.3V I/O capability.

    Lowest pixel clock rate for hdmi is 25Mhz,
    so if you somehow could get Waitvid to be programmed to send burst of 10bit data at 25mhz

    But this would mean a bit rate of 250MHz if the pixel rate was 25MHz, right? I think the most interesting modes are going to require bits rates at over 1GHz.

    When we could have 720x480p of pure digital display.

    PropII will be around to 2020, Analog VGA and PS2 etc will long gone by then.

    http://www.hdmi.org/download/HDMISpecification13a.pdf

    Thanks for posting this. I will look at it. These standards always seem to bury the vital details between the lines.
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.
  • cgraceycgracey Posts: 14,259
    edited 2009-11-26 17:16
    ErNa said...
    A way to measure the difference between two signals could be prepared: I face the problem to measure a high voltage (battery 24V) and the current through a high side shunt. How to do that? As the battery voltage is only changing slowly, while the shunt voltage changes fast, I use two of the props ADC's. Now I connect a low pass to the compensating output of the battery ADC. The pulses are integrated and the cap charges to a voltage proportional to the battery voltage, but negative in relation to the comparator level of the input. This voltage is fed into the shunt ADC, so the ADC is measuring the difference between the shunt terminals. The precision is mainly effected by the precision of the input resistors, the resolution is not to high, but we have a "differential" input. Maybe, the low pass can be integrated if there is a way to do it with a little capacitor.
    ErNa

    On the next Propeller there are very accurate delta-sigma ADCs built into every pin. With some precision voltage dividers and filter caps, you could do this differential measurement on two pins, with each using two resistors for the divider and a cap for the low-pass filter.

    I've still got the Propeller walnuts you gave me.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.
  • cgraceycgracey Posts: 14,259
    edited 2009-11-26 17:26
    dMajo said...
    @Chip, what about my question here http://forums.parallax.com/showthread.php?p=858929. I am specially interested in movs/movd instructions. You have put together a magnificent assembler and more an as more I familiarize with it and its sefl-modifyng possibilities the more I love it. Now (hope you have understood the way I'd like these two instructions to work with and without the wc flag set - source selector switch, Carry flag not modified) when I execute a line (where the destination was modified by previous instruction) and next execution is based upon the result of this line you can save a lot of lines with this. Here is an example:
    Median Filter (3)                                       With new instruction             
    ==============================================          ========================================
                 CMP   MEM2,   INPUT      wc                             CMP   MEM2,   INPUT      wc
           if_c  MOVS  Med31,  @INPUT                              if_c  MOVS  Med31,  @INPUT
           if_nc MOVS  Med31,  @MEM2                               if_nc MOVS  Med31,  @MEM2
                 MOVD  Med32,  Med31                                     MOVD  Med32,  Med31
           if_c  MOVS  Med33,  @MEM2                               if_c  MOVS  Med33,  @MEM2
           if_nc MOVS  Med33,  @INPUT                              if_nc MOVS  Med33,  @INPUT
    Med31        CMP   MEM3,   @0         wc                Med31        CMP   MEM3,   @0         wc
           if_c  MOVD  Med32,  @MEM3                               if_c  MOVD  Med32,  @MEM3
                 NOP                                                     NOP
    Med32        CMP   @0,     @0         wc                Med32        CMP   @0,     @0         wc 
    [color=red]             MOV   Temp,   Med32
                 SHR   Temp,   #9
           if_c  MOVS  Med33,  Temp                                if_c  MOVS  Med33, Med32       wc[/color] ;this WC is source mux ctrl bit; the instructon doesn't modify the carry flag
                 NOP                                                     NOP
    Med33        MOV   OUTPUT, @0                           Med33        MOV   OUTPUT, @0
                 MOV   MEM3,   MEM2                                      MOV   MEM3,   MEM2
                 MOV   MEM2,   INPUT                                     MOV   MEM2,   INPUT
    



    This is possible to do using the wc, though it creates an ugly exception. It could be covered up by adding, as someone suggested, a MOVSD and MOVDD instruction which could affect the 'wc' opcode bit. The deal would be that MOVS, MOVD, MOVSD, and MOVDD would no longer allow for 'wc', as·its state·would now be determined by the instruction·mnemonic.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.
  • cgraceycgracey Posts: 14,259
    edited 2009-11-26 17:29
    Spreader said...
    Hi Chip, congratulations to you and your team for a magnificent device that truly breaks the mould. do you have any tentative dates yet for the PII release?
    I suppose a year, but I said that a year ago, too.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.
  • ErNaErNa Posts: 1,752
    edited 2009-11-26 17:34
    And I didn't find new ones! They were unique, did You ever find someone else who had seen those?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    cmapspublic3.ihmc.us:80/servlet/SBReadResourceServlet?rid=1181572927203_421963583_5511&partName=htmltext
    Hello Rest Of The World
    Hello Debris
    Install a propeller and blow them away wink.gif
  • SapiehaSapieha Posts: 2,964
    edited 2009-11-26 22:14
    Hi Ariba


    I need that for one more posiblity.
    In my programs that I work on to some customer I need have one SUPERVISOR COG that can control all others (You said simple interupt) it is more as that.
    BUT has same function and many usages. As I reuse area of HUB memory that COG code reside with start ... I cant simply reload it (and it take to much time)
    And as You said with system that is in Propeller I. I lose all data stored in COG's Variable bufer that was colected in some time and COG wil after RESTART USE it ........... Important that this data are from last RUN.

    Regards
    Christoffer J

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • Bill HenningBill Henning Posts: 6,445
    edited 2009-11-26 22:18
    I agree, I could use a "soft reset" for LMM cogs.
    Sapieha said...
    Hi Ariba


    I need that for one more posiblity.
    In my programs that I work on to some customer I need have one SUPERVISOR COG that can control all others (You said simple interupt) it is more as that.
    BUT has same function and many usages. As I reuse area of HUB memory that COG code reside with start ... I cant simply reload it (and it take to much time)
    And as You said with system that is in Propeller I. I lose all data stored in COG's Variable bufer that was colected in some time and COG wil after RESTART USE it ........... Important that this data are from last RUN.

    Regards
    Christoffer J
    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.mikronauts.com Please use mikronauts _at_ gmail _dot_ com to contact me off-forum, my PM is almost totally full
    Morpheusdual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory IO board kit $89.95, both kits $189.95
    Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
    Las - Large model assembler for the Propeller Largos - a feature full nano operating system for the Propeller
  • BradCBradC Posts: 2,601
    edited 2009-11-26 23:58
    Chip Gracey (Parallax) said...
    Spreader said...

    Hi Chip, congratulations to you and your team for a magnificent device that truly breaks the mould. do you have any tentative dates yet for the PII release?
    I suppose a year, but I said that a year ago, too.

    If you rush the chef you get a lousy meal!

    Chip, it looks like you are adding quite a few new assembler instructions. How are you massaging things to fit them into the existing 32 bit opcode structure, or have you changed the opcode structure?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    If you always do what you always did, you always get what you always got.
  • cgraceycgracey Posts: 14,259
    edited 2009-11-27 00:03
    BradC said...
    Chip Gracey (Parallax) said...
    Spreader said...

    Hi Chip, congratulations to you and your team for a magnificent device that truly breaks the mould. do you have any tentative dates yet for the PII release?
    I suppose a year, but I said that a year ago, too.

    If you rush the chef you get a lousy meal!

    Chip, it looks like you are adding quite a few new assembler instructions. How are you massaging things to fit them into the existing 32 bit opcode structure, or have you changed the opcode structure?

    I took one regular S,D-type instruction space and used the S field to define the functionality while the·D field·declares the register to work on. With 512 immediate S possibilities, there's lots of space for these new instructions. Many of them take a partial span of this space to declare some embedded constants.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.
  • mctriviamctrivia Posts: 3,772
    edited 2009-11-27 00:08
    may i sugest that one of the output video modes be thrugh a TFP410

    This would give you the ability to do HDMI Output easily and the option to get licensed for the TFP510 for encrypted signals.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    24 bit LCD Breakout Board coming soon. $21.99 has backlight driver and touch sensitive decoder.
  • heaterheater Posts: 3,370
    edited 2009-11-27 07:42
    mctrivia: In Gods name why?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-11-27 09:38
    Chip said...

    ...In thinking about this more: over process, temperature, and voltage, we could not rely on the chip having better than +/-20% absolute tolerance, which is pretty poor. However, if rather than make the graduated values follow an R, 2R, 3R, 4R...) pattern, we could do (R, 2R, 4R, 8R...) and easily get 16 levels per high or low resistor attached. 5% tolerant resistors would be fine, too.

    Yes. This circuitry would only be required on the top pin (if it is complex) which would be used as a configuration pin. And it can still be used as an output later. 5% tolerance (although 1% are pretty much the norm) and yes, would have to allow for 20% process variation. This is an extremely simple mechanism to select boot options. In a proto board, 3 machine pin sockets would allow various resistors to be plugged in.

    Have you thought about the nr option writing to a register/cog location. Further thoughts, $1FF might be the easiest as a set of 9 'OR' gates on the write address or'd with the nr bit. An exception would be the read/write hub instructions.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    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)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • mctriviamctrivia Posts: 3,772
    edited 2009-11-27 15:48
    Why because I only have room for hdmi header and don't own a analog tv. All vga or hdmi/dvi

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    24 bit LCD Breakout Board coming soon. $21.99 has backlight driver and touch sensitive decoder.
  • heaterheater Posts: 3,370
    edited 2009-11-27 15:53
    Fair enough but it was the "licensed for ... encrypted signals." that worries me. I have a gut feeling we should not be supporting that stuff in anyway let alone paying licence fees for it.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • mctriviamctrivia Posts: 3,772
    edited 2009-11-27 15:56
    I would not bother getting a license. The 410 is good enough for me but some customers may want to and the 2 chips are compatible.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    24 bit LCD Breakout Board coming soon. $21.99 has backlight driver and touch sensitive decoder.
  • SSteveSSteve Posts: 808
    edited 2009-11-27 16:58
    Chip Gracey (Parallax) said...

    3) Windows sucks too.

    Please consider Unix(OS X)/Linux as the cross development platform of choice.

    We'll probably first support Windows, because we don't know any better, but anything else could follow.


    Chip, if you really want to break away from Windows you just have to do it. Stop using the excuse of "because we don't know any better." Parallax is a collection of very smart people who do know better. Start infesting the office with a few boxes running the other operating systems and let the process begin organically.

    I'd suggest doing exactly what BradC is doing by decoupling the IDE, compiler, and loader. If you can only make the IDE on Windows at first then so be it. But if there's a Parallax-sanctioned command-line compiler and loader available for the Prop II on OS X and Linux from day one, it will make things a lot easier for your ever-growing corps of non-Windows users. We can implement the IDE on our platforms.

    -Steve

    This thread is exploding in a half-dozen different directions at once and I can't keep up so please forgive me if this post is redundant.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    OS-X: because making Unix user-friendly was easier than debugging Windows

    links:
    My band's website
    Our album on the iTunes Music Store

    Post Edited (SSteve) : 11/27/2009 5:03:08 PM GMT
  • Luis DigitalLuis Digital Posts: 371
    edited 2009-11-27 19:24
    Steve,

    With the Propeller I many made that suggestion, but did not agree Parallax. Then, as they gave some information and was achieved through reverse engineering to make several compilers and emulators.

    Lost Parallax? On the contrary, won more users.

    What I think they should do with the next version is to give all the specifications, in order to create all kinds of tools.

    All businesses are opening up their data, because the time to pay $ 1000.00 by a compiler or just use Windows has passed.

    Sure, they can continue with its model because it is better for them to support and write the documentation, but it is important to give information to create other tools.
  • BradCBradC Posts: 2,601
    edited 2009-11-28 00:52
    SSteve said...

    I'd suggest doing exactly what BradC is doing by decoupling the IDE, compiler, and loader. If you can only make the IDE on Windows at first then so be it. But if there's a Parallax-sanctioned command-line compiler and loader available for the Prop II on OS X and Linux from day one, it will make things a lot easier for your ever-growing corps of non-Windows users. We can implement the IDE on our platforms.

    bstc was spawned from the interpreter source being posted. I figured if I had that and knew precisely what it was doing with the bytecodes I could write a compiler to compile them. That, and I really don't like windows. I did originally ask for some information to try and enhance WINE to run the propeller tool.

    It is a bit of a shame that nobody outside of this forum knows you can develop for the propeller outside of a windows environment though.

    I don't particularly agree that the IDE, compiler and loader are decoupled though. The IDE has some very, very deep hooks into the compiler to allow access to the symbol table so that when you click on a symbol in the editor you get some information about it down the bottom (plus a few other funky background bits). As I had no experience previously providing cross platform tools, I wrote the loader first as a test, then the compiler and then the IDE followed. They are still published as separate tools as I find it useful to have command line tools, but in the IDE they are as tightly coupled as you could get. There is no way to separate out the compiler and substitute it for example.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    If you always do what you always did, you always get what you always got.
  • MicrocontrolledMicrocontrolled Posts: 2,461
    edited 2009-11-28 03:15
    I'm not going to get started on this one, but really, why on earth would Parallax switch to making compilers for OS's that are simply a geek fad that will be soon outdated and then to keep up with technology will have to get as stuffed up as Windows? It is OK to have both compilers, but why switch entirely? If you switched OS's on compilers, then me allong with several others would have to backup all our data and change Operating Systems on our programming computers. I vote to stick with windows but to also put up 3rd party Linux and Mac compilers on your download page listed as 3rd party. This way compilers like Brad's could be used by non forum users/viewers too.
    Don't let this thread turn into an OS battle, though.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Computers are microcontrolled.

    Robots are microcontrolled.
    I am microcontrolled.

    But you·can·call me micro.

    Want to·experiment with the SX or just put together a cool project?
    SX Spinning light display·
    Want cheap wholesale electronic parts?
    Transistor parts wholesale
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2009-11-28 03:20
    dMajo said...
    BTW: @Chip, how is the instruction fetching of the new PropII made? It will be still necessary to interpose a line between the modifier and the modified code lines?
    Chip Gracey said...
    Yes, when you modify an instruction ahead, you must execute one in the middle ...
    Thank goodness this "feature" will propagate to the P2. It's what makes coroutine implementation drop-dead simple! smile.gif

    -Phil
Sign In or Register to comment.