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.
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
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!
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
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.
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
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
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
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.
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
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.
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 § £ µ ù ç ³ ² ...
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
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.
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.
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.
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: 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:
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>
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?
Comments
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.
Leon
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Suzuki SV1000S motorcycle
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
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
I used it in the 70ties on IBM mainframe, on their first "PC", the 5100 and finally on my Apple ][noparse][[/noparse].
Leon
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Suzuki SV1000S motorcycle
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
Leon
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Amateur radio callsign: G1HSM
Suzuki SV1000S motorcycle
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
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
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:
No guarantees, though!
Ross.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Catalina - a FREE C compiler for the Propeller - see Catalina
humanoido
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.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
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.
Should not be a problem.
Characterset is funny, but it's no more than an appropriate character generator and some stickers...
We already have § £ µ ù ç ³ ² ...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
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.
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
Look for "pins" in lmm.pasm.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
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.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
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
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_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
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
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!
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?