I got my ZX-81 as a kit, imported from the U.K. It was the 1 KB version, with two 2114 SRAM chips. By adjusting the VHOLD on my old black and white TV far out of range (60 Hz to 50 Hz), I could get a stable display. (The family's good colour TV would not go out of range far enough to use for the ZX-81.) I learned Forth on my HP 71B handheld computer. There is a Forth word called SMUDGE that allows you use a word in its own definition, and thus write recursive functions. Currently, I have a Tandy WP-2 "portable word processor", a Z80 system with 256 KB ROM, 32 KB SRAM, 128 KB CMOS battery-backed RAMdisk, 8 line x 80 character LCD, serial, parallel, and casette tape ports, and a nice keyboard. I read that it also can run Forth out of RAM.
Back in 1983 I purchased a direct replacement rom from a company called Skywave here in the UK. It was a direct drop in replacement for the basic rom giving Skywave Forth instead. This Forth allowed multiple Forth programs to run in user defined screen windows on a ZX81. Wish I still had it! It did prompt me to buy a Jupiter Ace as well.
Well that there is an inspiration for an operating system for a homebrew computer if I have ever heard any,! Multitasking windowed live coded stack machine system, from a ROM
Great to see you do ZedX81 as well as Masterlab, Lisp etc! I seem to have 5 ZedX81s (they're called Timex in the US because people don't know zed there). - great project. I may have one that is socketed, so I'll put it on the to do list. Happy New Year!
In the US, we had the ZX81 before Timex Sinclair 1000... the ZX81 was the 1k version and the TS1000 was a 2K machine. We had kit and complete ZX81s available here, but only complete TS1000 machines. (We also had the ZX80 kit and complete machines as well.)
@williamsteele ah! I forgot about the kits. I think the main difference here between the 80 and 81 was that many people who bought the 81 had no idea what they were.buying , but as it was cheap and had the word computer in it they got intrigued. I'd bet everyone who bought the 80 knew exactly what it was and did!
The ZX81 doesn't have a channel select switch so I added one to mine and re-wired it as an "image select". Now I have a dual boot ZX81 (Basic and Forth)
... ich habe 4 Stück davon, davon 1 mal selbst zusammengelötet aus einem Bausatz der Firma Schumpich in München. Die gibt es wohl nicht mehr und damals wohnte ich noch in Finnland. Forth gsb es, wenn ich mich richtig erinnere für den Sinclair Spectrum.
Stimmt. Es gab sogar verschiedene Versionen. White Lightning (Spiele), Artic Forth, usw. Aber die meist beliebte version war halt Abersoft Forth. Ein Teil des Speichers würde aber geopfert für eine Art RAM-disk. Artic Forth hatte aber eine fette 33K freie Speicher zu Verfügung. Ick habe det Ding sogar umprogrammiert für den BetaDisk. Leider habe ich mich nie beschäftigt mit das interfacen eines 64 Karakter Treiber. Es kam mit eine von FIG abgeleitete editor, der auf 32 Karakter Zeilenbreite kaum benutzber war. Aber das wäre ein System gewesen!
It's NOT a recursive version of Factorial. This is: : fac dup if dup 1- recurse * exit then 1+ ; BTW, your definition: : fac2 1 swap 1+ 1 do i * loop ; Doesn't work quite right for 0 Factorial ( = 1). This one does. If your Forth complies to Forth-79, you might need this: : RECURSE LAST @ NAME> , ; IMMEDIATE
Yes, I didn't say it is recursive - quite the opposite, I said it isn't, and what some other options are to implement a recursive version ;-) I said that you will need a compiler extension which is what IMMEDIATE provides. You can watch my Microprofessor Forth videos to learn more about recursion in Forth (know that RECURSE is not "standard" either). There, I exercised a number of options, including CALL / RECURSE, Vectored Execution, and the infamous DOER / MAKE. See this list, videos 4 and 5: ua-cam.com/play/PLvdXKcHrGqhdMPXNGfCzHPD5k9wWIG5PS.html Good catch with the 0 corner case! You are right.
@@michaelwessel4953 Ok, I understood you were using a recursive version - my bad, old ears ;-) Nowadays (Forth-94) RECURSE *is* standard. That's why we miss it in older versions.
@@HansBezemer hah, good to know! I must say that I am rather new to Forth, and starting with the old retro computer Forth stuff, so I actually don't know anything newer than that 😀
I got my ZX-81 as a kit, imported from the U.K. It was the 1 KB version, with two 2114 SRAM chips. By adjusting the VHOLD on my old black and white TV far out of range (60 Hz to 50 Hz), I could get a stable display. (The family's good colour TV would not go out of range far enough to use for the ZX-81.)
I learned Forth on my HP 71B handheld computer. There is a Forth word called SMUDGE that allows you use a word in its own definition, and thus write recursive functions.
Currently, I have a Tandy WP-2 "portable word processor", a Z80 system with 256 KB ROM, 32 KB SRAM, 128 KB CMOS battery-backed RAMdisk, 8 line x 80 character LCD, serial, parallel, and casette tape ports, and a nice keyboard. I read that it also can run Forth out of RAM.
Back in 1983 I purchased a direct replacement rom from a company called Skywave here in the UK. It was a direct drop in replacement for the basic rom giving Skywave Forth instead. This Forth allowed multiple Forth programs to run in user defined screen windows on a ZX81. Wish I still had it! It did prompt me to buy a Jupiter Ace as well.
Thanks for sharing! Nice... I'd love to own a Jupiter Ace.
Well that there is an inspiration for an operating system for a homebrew computer if I have ever heard any,! Multitasking windowed live coded stack machine system, from a ROM
Great to see you do ZedX81 as well as Masterlab, Lisp etc! I seem to have 5 ZedX81s (they're called Timex in the US because people don't know zed there). - great project. I may have one that is socketed, so I'll put it on the to do list. Happy New Year!
In the US, we had the ZX81 before Timex Sinclair 1000... the ZX81 was the 1k version and the TS1000 was a 2K machine. We had kit and complete ZX81s available here, but only complete TS1000 machines. (We also had the ZX80 kit and complete machines as well.)
@williamsteele ah! I forgot about the kits. I think the main difference here between the 80 and 81 was that many people who bought the 81 had no idea what they were.buying , but as it was cheap and had the word computer in it they got intrigued. I'd bet everyone who bought the 80 knew exactly what it was and did!
The ZX81 doesn't have a channel select switch so I added one to mine and re-wired it as an "image select". Now I have a dual boot ZX81 (Basic and Forth)
Nice! I have some EPROM switches likes this in some of my other computers, but not in the ZX81 yet. Should do that, too.
Nice! I will have to try this on my ZED X 81 ;)
@@michaelwessel4953 lol .. You say it the American way, that's all :-)
Do you consider upgrading the memory of the zx-81 ?
I have the standard external ones.
... ich habe 4 Stück davon, davon 1 mal selbst zusammengelötet aus einem Bausatz der Firma Schumpich in München. Die gibt es wohl nicht mehr und damals wohnte ich noch in Finnland. Forth gsb es, wenn ich mich richtig erinnere für den Sinclair Spectrum.
@@michaelwessel4953 ??? ist doch schon zusammengelotet !!!! 1981
Stimmt. Es gab sogar verschiedene Versionen. White Lightning (Spiele), Artic Forth, usw. Aber die meist beliebte version war halt Abersoft Forth. Ein Teil des Speichers würde aber geopfert für eine Art RAM-disk. Artic Forth hatte aber eine fette 33K freie Speicher zu Verfügung. Ick habe det Ding sogar umprogrammiert für den BetaDisk.
Leider habe ich mich nie beschäftigt mit das interfacen eines 64 Karakter Treiber. Es kam mit eine von FIG abgeleitete editor, der auf 32 Karakter Zeilenbreite kaum benutzber war. Aber das wäre ein System gewesen!
... es gab aber auch den Bausatz von Schumpich. Ich glaube bei mir liegt noch irgendwo die Bauanleitung rum.
It's NOT a recursive version of Factorial. This is:
: fac dup if dup 1- recurse * exit then 1+ ;
BTW, your definition:
: fac2 1 swap 1+ 1 do i * loop ;
Doesn't work quite right for 0 Factorial ( = 1). This one does. If your Forth complies to Forth-79, you might need this:
: RECURSE LAST @ NAME> , ; IMMEDIATE
Yes, I didn't say it is recursive - quite the opposite, I said it isn't, and what some other options are to implement a recursive version ;-) I said that you will need a compiler extension which is what IMMEDIATE provides. You can watch my Microprofessor Forth videos to learn more about recursion in Forth (know that RECURSE is not "standard" either). There, I exercised a number of options, including CALL / RECURSE, Vectored Execution, and the infamous DOER / MAKE. See this list, videos 4 and 5: ua-cam.com/play/PLvdXKcHrGqhdMPXNGfCzHPD5k9wWIG5PS.html Good catch with the 0 corner case! You are right.
@@michaelwessel4953 Ok, I understood you were using a recursive version - my bad, old ears ;-)
Nowadays (Forth-94) RECURSE *is* standard. That's why we miss it in older versions.
@@HansBezemer hah, good to know! I must say that I am rather new to Forth, and starting with the old retro computer Forth stuff, so I actually don't know anything newer than that 😀