Shop OBEX P1 Docs P2 Docs Learn Events
ULTIMATE List of Propeller Languages - Page 2 — Parallax Forums

ULTIMATE List of Propeller Languages

2456713

Comments

  • hinvhinv Posts: 1,252
    edited 2009-05-24 07:18
    Wow, that whole lisp thing is impressive!
    I thought it was a resource hog because of it's recursion, etc.
    Maybe I will go back an continue learning it.

    From what I read, LISP and Forth are the 2 languages that will be around in another 40 years because of their extensable nature.
  • LeonLeon Posts: 7,620
    edited 2009-05-24 07:37
    LISP is the second oldest language, after Fortran, but is still widely used. The Symbolics LISP machine used LISP as its machine code, it was very fast.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
    Suzuki SV1000S motorcycle
  • hinvhinv Posts: 1,252
    edited 2009-05-24 07:45
    Well, can I have emacs then? ;^)
  • heaterheater Posts: 3,370
    edited 2009-05-24 08:05
    humanoido: What on earth did you start here?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-05-25 08:04
    heater said...
    humanoido: What on earth did you start here?
    [noparse]:)[/noparse] Continue! I'm interested in languages modified to actually run
    on the Hydra or Propeller Demo Board. Post more language
    downloads that are plug'n'play ready!!!

    But I must admit, this thread has become a great list of languages
    and some interesting history!

    humanoido
  • RambomanRamboman Posts: 101
    edited 2009-05-26 04:57
    Another one: APL

    I used it in the 70ties on IBM mainframe, on their first "PC", the 5100 and finally on my Apple ][noparse][[/noparse].
  • LeonLeon Posts: 7,620
    edited 2009-05-26 06:25
    I used it on an XDS Sigma in the 1970s. Xerox Corp. and Rank Xerox used it for applications that a spreadsheet would be used for nowadays; matrix operations were very easy.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
    Suzuki SV1000S motorcycle
  • Phil Pilgrim (PhiPi)Phil Pilgrim (PhiPi) Posts: 23,514
    edited 2009-05-26 06:35
    But has APL been ported to the Propeller? I think that's what this thread is about. It would entail a whole new character font, for one thing!

    Could it run on a Propeller? I've seen it run on an IBM 1130 with 8K x 16 of RAM; but, as I recall, there was some major disk swapping going on.

    -Phil



    _

    Post Edited (Phil Pilgrim (PhiPi)) : 5/26/2009 6:40:44 AM GMT
  • LeonLeon Posts: 7,620
    edited 2009-05-26 08:07
    APL can be used with ordinary ASCII; I've forgotten the details, though. A subset could run on the Propeller.

    Leon

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Amateur radio callsign: G1HSM
    Suzuki SV1000S motorcycle
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-05-26 18:13
    Ross said...
    JMH,
    No worries. I agree the Hydra is a limited solution. But even 96K is useful - and it is available NOW.
    How about LISP for the Hydra? Written in C. Takes 96K. Took me about 10 minutes to find it, compile it, load it and run it.
    Ross.
    Edit: I'll include the source for this in the next release of Catalina
    Edit: added super trvial garbage collection to make it possible to execute more than just a couple of lines of lisp before running out of space!
    Catalina - a FREE C compiler for the Propeller - see Catalina
    Post Edited (RossH) : 5/24/2009 3:47:00 AM GMT
    File Attachment :
    lisp_xmm.eeprom
    How is this run? It just gives an error when loading it.
  • RossHRossH Posts: 5,345
    edited 2009-05-26 22:52
    @humanoido,

    You need to load the entire image into the eeprom on board the HX512 using the Hydra Asset Manager (HAM).

    What error are you getting?

    Ross.

    P.S. I have a slightly more optmized version of this program that allows three times the number of nodes. I'll post it if you're interested.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-05-26 23:50
    Ross, any version that would load and run in a more simple fashion would be appreciated. Go ahead and post it! I was not using HAM. I thought it would load and run with the Propeller Tool (Editor/Development System). I'm still a Prop-Newbie. Perhaps you can post some instructions on how to load and run this, or make it self loading and running?
    humanoido
  • RossHRossH Posts: 5,345
    edited 2009-05-27 00:48
    @humanoido,

    At the moment, HAM is the simplest option. As far as I am aware there are no Parallax tools for loading eeproms larger than 32K.

    Quick instructions for HAM:

    1. First, Get HAM (see here).

    2. Start HAM. It shows you the layout of an imaginary eeprom up to 128K in size. The LISP eeprom file in this thread is ready to run (i.e. it already contains both the XMM program and the Catalina runtime target) so you just drag and drop the eeprom file from Windows Exporer into HAM - just make sure it's start address is set to $0000 (you can do this by just pressing the 'Compress Assets' button).

    3. To upload the image into the Propeller's eeprom, you first upload the HAM driver to the Propeller. That takes about 15 seconds. Then you upload the actual eeprom image to the Propeller. This takes about 1 minute.

    That's all - just reboot the Propeller and it should run.

    Ross.

    P.S. I'm not at home at the moment - I'll post the improved LISP program later today.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • RossHRossH Posts: 5,345
    edited 2009-05-27 09:31
    @humanoido,

    New version of lisp posted in place of the original. This version uses short pointers, which saves enough space for about three times as many lisp nodes. It will still run out of memory quite quickly, but it allows you to play with a few more lisp concepts.

    When you start it, you will see "Lisp Interpreter Run". Just type in a valid lisp expression - e.g. (* 3 (+ 2 2))

    Actually, for such simple expressions you don't need the parentheses:

    * 3 + 2 2 
    expression   (* 3 (+ 2 2))
    value        12
    
    



    No guarantees, though!

    Ross.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Catalina - a FREE C compiler for the Propeller - see Catalina
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-05-28 00:05
    heater said...
    Well. If you are happy to run interpreters then why not the Z80 emulator? Then the Prop can be programmed in at least:

    ACT
    Ada
    Algol
    APL
    Microsoft Basic (many versions)
    C (BDSC, HITECH etc)
    COBOL
    COMAL
    Forth
    FORTRAN
    Lisp
    Modula 2
    Mumps
    muSIMP
    Pascal
    PILOT
    PL/I
    PL/M
    PLMX
    SPL

    That should keep you going for a while[noparse]:)[/noparse]
    Are any of these actually tried and working, and where to download the Z80 Emulator and languages, and how to run each on a HYDRA?

    humanoido
  • heaterheater Posts: 3,370
    edited 2009-05-28 00:49
    Yes: I have run C programs compiled with BDSC on the 8085 emulator (PropAltair) and all of the BASICs except SBASIC. Cluso, probably without knowing it, has run programs written in SPL on the ZiCog Z80 emulator. It is used as part of the CP/M build system and he has rebuilt CP/M on the Prop itself. Of course the actual Z80 assembler works under ZiCog on the Prop itself.

    My problem is that currently I can only test the ZiCog emulator running out of HUB RAM on a DemoBoard which is not enough RAM for CP/M to run all the compilers I listed.

    I am very sure that CP/M running under ZiCog emulation on his TriBladeProp board can run all of the compilers listed. We have yet to try. I am looking forward to getting my TriBlade board assembled still.

    Currently the ZiCog Z80 emulator only supports running on a DemoBoard or the TriBladeProp board. I think someone was looking into adapting it for the Hydra RAM expansion card. I don't have one so cannot really help with that. Can't remember who but someone is also looking into changing the CPLD program on the Hydra RAM card to speed up RAM access when used for emulation so it will be supported soon I'm sure.

    Best bet is to start with a TriBlade board here:
    http://forums.parallax.com/showthread.php?p=790917

    The current incarnation of the Z80/8085 emulator is to be found here. (Sorry it became a long thread and the latest version is lost toward the end)
    Zicog here;
    http://forums.parallax.com/showthread.php?p=788511

    The original 8085 emulator is here:
    PropAltair here:
    http://forums.parallax.com/showthread.php?p=711157

    All of these languages are available as disk images for CP/M from the SIMH AltairZ80 project here:
    www.schorn.ch/cpm/intro.php

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • heaterheater Posts: 3,370
    edited 2009-05-28 00:52
    I just noticed you have been updating your list in the first post. Did you get MITS Altair BASIC running and TINY or is that just a download so far?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-05-28 03:00
    These are downloads that will soon be tested.

    I tried TINY and could not get it to work. It gives an error:
    tiny_test.pasm.binary.spin does not exist.
    Unless you know how to run it, I may need to remove it from the list.

    I will try the MITS Altair BASIC next. Hope I have better luck.

    I'm not running a TriBlade. I have the HYDRA and it has 128K on board and uses a 128K card.
  • RambomanRamboman Posts: 101
    edited 2009-05-28 05:48
    Using APL on IBM 5100 or Apple ][noparse][[/noparse], "workspace" was running in RAM i.e. 48 KB on Apple ][noparse][[/noparse].
    Should not be a problem.
    Characterset is funny, but it's no more than an appropriate character generator and some stickers...
    We already have § £ µ ù ç ³ ² ...
  • heaterheater Posts: 3,370
    edited 2009-05-28 07:40
    I'll have to remind myself how I ran TINY. It was a long time ago now.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • heaterheater Posts: 3,370
    edited 2009-05-28 10:20
    humanoido: Especially for you, see new thread "PropTiny - Jack Crenshaw's TINY language for the Prop"

    Have to keep TINY on your list some how[noparse]:)[/noparse]

    By the way, what did you do to get that error message?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-05-28 17:19
    heater,
    Thank you very much! I'll have more time after this weekend holiday trip and can devote a good amount of time to this, posting results. Is there anything I need to change to run it on the HYDRA board? I will follow the instructions in the text file and post any questions here. At first glance, I may have some questions. Thanks again for the new informative thread. It looks very helpful. It will be a good dream come true and a wonderful accomplishment to get this up and running on the HYDRA, with honors to yourself and Jack Crenshaw!
    humanoido
  • heaterheater Posts: 3,370
    edited 2009-05-29 05:38
    I know nothing of the Hydra but that TINY package only uses one COG and the HUB RAM. It has no I/O except writing to 8 LEDs on P16 - P23 which may need changing for the HYDRA.

    Look for "pins" in lmm.pasm.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-08-14 05:27
    Revisiting Propeller Language Collection (two months later)

    Below is the current collection. Can anyone add a language to the list?
    Note - only languages that can be downloaded and are currently working
    with the Propeller chip.

    attachment.php?attachmentid=62920

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    humanoido
    *Stamp SEED Supercomputer *Basic Stamp Supercomputer *TriCore Stamp Supercomputer
    *Minuscule Stamp Supercomputer *Three Dimensional Computer *Penguin with 12 Brains
    *Penguin Tech *StampOne News! *Penguin Robot Society
    265 x 461 - 28K
  • Mike GreenMike Green Posts: 23,101
    edited 2009-08-14 05:44
    Meta2

    http://forums.parallax.com/showthread.php?p=692011

    There's also a version that works under Sphinx and runs completely on the Propeller.

    http://forums.parallax.com/showthread.php?p=819353

    This is a compiler writing language that can compile itself. It's been used in the past to bootstrap compilers for several languages including Pascal.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-14 06:39
    Re the posts earlier by Heater listing all the languages from CP/M. These really are running on a propeller. Ok there was that criteria of it needing to run on the demo board and the 1 blade of a triblade is a little more than the demo board, but it is only a few chips more. All of the languages in the list are entirely valid. I was programming in MBASIC and SBASIC earlier today as well as Z80 assembler. Compiling can be done on the propeller. That will make the collection look very impressive.
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-08-14 08:16
    Thanks Mike for the two new languages - META2 versions, exactly what I was looking for!

    Dr_Acula, I can only include prop-working operating systems and languages that can be downloaded. Do you have a download link to your prop-working versions of CP/M, MBASIC, SBASIC, and Z80 Assembler? Thanks very much!

    You're right, adding that CP/M language list would be an impressive gold mine!!! But the list can only be added if the languages are available for download and working on the Prop.

    I'm putting together a language collection and will make it available free to everyone who has a Prop, to massively extend Prop capability. I must get the total number of languages above 50 or it won't be nearly impressive.

    humanoido
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-08-14 10:03
    humanoido: All the code to get CPM is posted on the forum. However, to get the CPM languages running you require an SD or microSD card. Some of the languages under CPM may require more than 24KB of memory (which is what I think heater's ZiCog requires as a minimum) so external sram (such as on my TriBlade) may be required. Heater can answer whether it can run on a Hydra and whether this requires external memory.

    So, what are your minimum hardware requirements for listing???

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

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80), MoCog (6809)
    · Search the Propeller forums (via Google)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-14 14:48
    Dr_Acula, I can only include prop-working operating systems and languages that can be downloaded. Do you have a download link to your prop-working versions of CP/M, MBASIC, SBASIC, and Z80 Assembler? Thanks very much!

    Yes, it is all over the place. Sorry about that. Still very experimental and new.

    Photo attached is the hardware.
    Zicog code is on the Zicog thread (usually gets bumped fairly often. Either intentionally or accidentally...)
    The build instructions are on Cluso's website
    The disk images are here www.schorn.ch/cpm/intro.php as well as all the other languages
    The software to create disk images is on Cluso's Triblade thread

    This is a screen dump of running BDS C, MBASIC and SBASIC. There are a lot more languages to try though.

    Retro? Having just read through some of the BDS C manual, there seems to be a lot in common with Spin. Very handy!

    ZiCog v0.009 on the TriBladeProp v0.09x
    8 bit, parity=None, 2 stop bits, Flow control=None
    
    Starting disks... 
    A:DRIVE__A.DSK
    B:DRIVE__B.DSK
    C:DRIVE__C.DSK
    D:DRIVE__D.DSK
    E:DRIVE__E.DSK
    F:DRIVE__F.DSK
    G:DRVCPM_2.DSK
    H:DRVCPM_3.DSK
    Loading SRAM... 
    ................................................................................................................................Loaded
    Starting TriBladeProp driver ... 
     Passed, please wait...
    Starting Z80 emulation... Passed, please wait...
    
    64K CP/M Version 2.2 (SIMH ALTAIR 8800, BIOS V1.25, 2 HD, 15-Jan-07)
    Unknown console status write with byte &H03
    
    A>C:
    
    C>DIR
    
    C: BDSCPAT  Z80 : -READ    ME  : BDS      LIB : CMODEM   C  
    C: C        CCC : C        SUB : CASM     C   : CASM     SUB
    C: CC       COM : CC2      COM : CCC      ASM : CCONFIG  C  
    C: CCONFIG  COM : CCONFIG  H   : CCONFIG2 C   : CHARIO   C  
    C: CLIB     COM : CLINK    COM : CLOAD    C   : CRCKLST1 CRC
    C: DEFF     CRL : DEFF2    CRL : DEFF2A   CSM : DEFF2B   CSM
    C: DEFF2C   CSM : FILES    DOC : L2       C   : SOURCES  LBR
    C: STDIO    H   : STDLIB1  C   : STDLIB2  C   : STDLIB3  C  
    C: ZCASM    LBR : -LBR     NOT : BCD      LBR : BDSCIO   H  
    C: BUGS     DOC : CDEBUG   LBR : CRCK     COM : CRCK     DOC
    C: CRCKLST2 CRC : DEFF15   CRL : LBREXT   COM : LDIR     COM
    C: LONG     C   : MCONFIG  H   : RED      LBR : TARGET   C  
    C: UNCRUNCH COM : CASM     CRL : CASM     COM : CHARIO   CRL
    C: L2       COM : CCV16PAT HEX : CLOAD    COM : TAIL     C  
    C: CCV20PAT HEX : CMODEM   H   : CMODEM2  C   : CP       C  
    C: DATE     C   : DIO      C   : DIO      H   : HARDWARE H  
    C: LPR      C   : NDI      C   : NOBOOT   C   : RM       C  
    C: UCASE    C   : WILDEXP  C   : TAIL     CRL : TAIL     COM
    C: CCONFIG  CRL : CCONFIG2 CRL : UCASE    CRL : UCASE    COM
    C: UCASE    TXT
    
    C>type ucase.c
    
    
    /*
            Ucase.c         written by Leor Zolman
    
            This filter converts a file to all upper case.
    
                    A>ucase oldfile [noparse][[/noparse]newfile] <cr>
    
    */
    
    #include <stdio.h>
    
    FILE *ifd, *ofd;
    int i, c;
    
    main(argc,argv)
    char **argv;
    {
            if (argc < 2 || argc > 3) {
                    printf("usage: ucase oldfile [noparse][[/noparse]newfile]\n");
                    exit();
            }
    
            ifd = fopen(argv,"r");
    
            if (argc == 2) argv = "ucase.tmp";
            ofd = fopen(argv,"w");
    
            if (ifd == ERROR || ofd == ERROR) {
                    printf("Can't open file(s)\n");
                    exit();
            }
    
            while (1)
            {
                    c = getc(ifd);
                    if (c == EOF)
                            break;
                    putc(toupper(c),ofd);
            }
    
            fclose(ifd);
            fclose(ofd);
    
            if (argc == 2) {
                    unlink(argv);
                    rename(argv,argv);
            }
    }
    
    C>CC UCASE
    
    BD Software C Compiler v1.60  (part I)
      35K elbowroom
    
    BD Software C Compiler v1.60 (part II)
      33K to spare
    
    C>CLINK UCASE
    
    BD Software C Linker   v1.60
    
    Last code address: 1F8E 
    Externals start at 1F8F, occupy 000E bytes, last byte at 1F9C 
    Top of memory: E405 
    Stack space: C469 
    Writing output...
      40K link space remaining
    
    C>UCASE UCASE.C UCASE.TXT
    
    C>TYPE UCASE.TXT
    
    
    /*
            UCASE.C         WRITTEN BY LEOR ZOLMAN
    
            THIS FILTER CONVERTS A FILE TO ALL UPPER CASE.
    
                    A>UCASE OLDFILE [noparse][[/noparse]NEWFILE] <CR>
    
    */
    
    #INCLUDE <STDIO.H>
    
    FILE *IFD, *OFD;
    INT I, C;
    
    MAIN(ARGC,ARGV)
    CHAR **ARGV;
    {
            IF (ARGC < 2 || ARGC > 3) {
                    PRINTF("USAGE: UCASE OLDFILE [noparse][[/noparse]NEWFILE]\N");
                    EXIT();
            }
    
            IFD = FOPEN(ARGV,"R");
    
            IF (ARGC == 2) ARGV = "UCASE.TMP";
            OFD = FOPEN(ARGV,"W");
    
            IF (IFD == ERROR || OFD == ERROR) {
                    PRINTF("CAN'T OPEN FILE(S)\N");
                    EXIT();
            }
    
            WHILE (1)
            {
                    C = GETC(IFD);
                    IF (C == EOF)
                            BREAK;
                    PUTC(TOUPPER(C),OFD);
            }
    
            FCLOSE(IFD);
            FCLOSE(OFD);
    
            IF (ARGC == 2) {
                    UNLINK(ARGV);
                    RENAME(ARGV,ARGV);
            }
    }
    
    
    
    C>A:
    
    A>MBASIC
    
    BASIC-80 Rev. 5.21
    [noparse][[/noparse]CP/M Version]
    Copyright 1977-1981 (C) by Microsoft
    Created: 28-Jul-81
    32824 Bytes free
    Ok
    10 PRINT "Hello World"
    run
    Hello World
    Ok
    system
    
    
    A>type new.bas
    
    comment
            call small procedures first then bigger procedures
            as can't call/reference a later procedure (one pass compiler)
            Dim common variables eg arrays at beginning of program
    end
    rem *** functions and procedures ***
    
    rem ************ MAIN **************
    
    print "Hello World"
    end
    
    A>sbasic new
    
           tm
    S-BASIC Compiler Version 5.4b 
    
    0001:00 comment
    0002:01         call small procedures first then bigger procedures
    0003:01         as can't call/reference a later procedure (one pass compiler)
    0004:01         Dim common variables eg arrays at beginning of program
    0005:01 end
    0006:00 rem *** functions and procedures ***
    0007:00 
    0008:00 rem ************ MAIN **************
    0009:00 
    0010:00 print "Hello World"
    0011:00 end
    0012:00         ****** End of program ******
    Compilation complete
    
    A>new
    
    Hello World
    
    A>
    
    
    1280 x 960 - 357K
  • HumanoidoHumanoido Posts: 5,770
    edited 2009-08-14 14:55
    Cluso99: If it can work on the Hydra board with the 128K board, 512K board, or SD card board with 1Mb, that would be considered the max configurations.

    The mid-range configuration is the Prop Proto Board.

    The minimum configuration is the Prop Demo Board, or the Prop assembled from the prop education kit.

    I think this covers almost every aspect for running Propeller languages. Right?
Sign In or Register to comment.