IRC Log - 2025-04-15 - ##forth

Channel: ##forth
Total messages: 174
Time range: 00:05:44 - 22:53:45
Most active: anthk_ (65), cleobuline (49), mforth (42)
00:05:44 ##forth <anthk_> uh, lawrence it's the current maintainer for xAce which is the same guy who wrote Subleq and Forth on it
00:05:59 ##forth <anthk_> it doesn't surprise me...
00:15:06 ##forth <anthk_> ok fixed the CMakeFile, let's try the ACE
02:13:48 ##forth <pgimeno> anthk_: yeah ZX Spectrum. About zesarux, the menu system is awful IMO but the speed isn't too bad, especially if you select the SDL backend (--vo sdl I think).
02:15:52 ##forth <pgimeno> About the link, the emulator version is "almost interactive", but not quite there. It's designed for developing. I wrote the port of Mazogs with a precursor of that.
02:25:41 ##forth <pgimeno> I've seen the speed of the emulator version reach about the equivalent to a 1.67 GHz, quite impressive for a Juppy :)
02:58:17 ##forth <cleobuline> mforth: WORDS
02:58:17 ##forth <mforth> USERNAME .S . + - * / MOD DUP DROP SWAP OVER ROT >R R> R@ = < > AND OR NOT XOR & | ^ ~ << >> CR EMIT VARIABLE @ ! +! DO LOOP I WORDS LOAD CREATE ALLOT ." CLOCK BEGIN WHILE REPEAT AGAIN SQRT UNLOOP +LOOP PICK CLEAR-STACK PRINT NUM-TO-BIN PRIME? FORGET STRING " 2DROP IMAGE TEMP-IMAGE CLEAR-STRINGS DELAY EXIT MICRO MILLI DOUBLE FACT POW FIBONACCI COUNTDOWN TUCK SUM_SQUARE CUBE SUM_CUBES RECUNACCI
02:58:38 ##forth <cleobuline> yeah it remember the environment if disconnected
02:59:47 ##forth <cleobuline> mforth: 20 SPACES ." * " CR
02:59:47 ##forth <mforth> *
02:59:51 ##forth <cleobuline> mmm
03:03:19 ##forth <cleobuline> mforth: 20 SPACES 42 EMIT CR
03:03:19 ##forth <mforth> *
03:03:41 ##forth <cleobuline> mforth: 40 SPACES 42 EMIT CR
03:03:41 ##forth <mforth> *
03:04:05 ##forth <cleobuline> mforth: 10 SPACES 42 EMIT CR
03:04:05 ##forth <mforth> *
04:58:22 ##forth <ohnoitsn`> hello gang :D
11:07:41 ##forth <anthk_> pgimeno: zesarux it's slow under OpenBSD at least; it used to be faster, but xace rocks
11:07:54 ##forth <anthk_> I'm using the old books in Spanish for Forth under the the ACE
11:08:09 ##forth <anthk_> First, : words vlist ;
16:14:12 ##forth <cleobuline> mforth: 80 SPACES 42 EMIT CR
16:14:13 ##forth <mforth> *
16:14:47 ##forth <cleobuline> mforth: 80 SPACES 42 EMIT ." bing ! " CR
16:14:47 ##forth <mforth> bing !
16:29:26 ##forth <anthk_> mforth: EURO EMIT CR
16:29:27 ##forth <mforth> Unknown word: EURO
16:29:27 ##forth <mforth> Error: EMIT: Stack underflow
16:29:46 ##forth <anthk_> mforth: EURO EMIT CR
16:29:46 ##forth <mforth> Unknown word: EURO
16:29:46 ##forth <mforth> Error: EMIT: Stack underflow
16:30:54 ##forth <anthk_> mforth: 65535 2 + .s
16:31:00 ##forth <anthk_> mforth: .
16:31:04 ##forth <mforth> 65537
16:32:21 ##forth <anthk_> mforth: depth
16:32:22 ##forth <mforth> Unknown word: depth
16:34:43 ##forth <anthk_> mforth: s" test " included
16:34:43 ##forth <mforth> Unknown word: s"
16:34:44 ##forth <mforth> Error: Missing closing quote for "
16:35:01 ##forth <anthk_> mforth: s" test" included
16:35:01 ##forth <mforth> Unknown word: s"
16:35:01 ##forth <mforth> Unknown word: test"
16:35:59 ##forth <anthk_> mforth: create box 1 cells allot
16:35:59 ##forth <mforth> Unknown word: create
16:36:00 ##forth <mforth> Unknown word: box
16:36:07 ##forth <anthk_> mforth: words
16:36:07 ##forth <mforth> Unknown word: words
16:36:11 ##forth <anthk_> mforth: vlist
16:36:11 ##forth <mforth> Unknown word: vlist
16:36:21 ##forth <anthk_> mforth: WORDS
16:36:21 ##forth <mforth> USERNAME .S . + - * / MOD DUP DROP SWAP OVER ROT >R R> R@ = < > AND OR NOT XOR & | ^ ~ << >> CR EMIT VARIABLE @ ! +! DO LOOP I WORDS LOAD CREATE ALLOT ." CLOCK BEGIN WHILE REPEAT AGAIN SQRT UNLOOP +LOOP PICK CLEAR-STACK PRINT NUM-TO-BIN PRIME? FORGET STRING " 2DROP IMAGE TEMP-IMAGE CLEAR-STRINGS DELAY EXIT MICRO MILLI
16:36:27 ##forth <cleobuline> anthk_: refere toi au dictionnaire voila
16:36:27 ##forth <anthk_> doh
16:36:45 ##forth <anthk_> cleobuline: I did that in uppercase
16:37:09 ##forth <anthk_> mmm no floating ops
16:37:25 ##forth <anthk_> mforth: 2. 3. + .s
16:37:26 ##forth <mforth> Unknown word: 2.
16:37:26 ##forth <mforth> Error: Stack underflow
16:37:30 ##forth <anthk_> mforth: 2. 3. + .S
16:37:30 ##forth <mforth> Unknown word: 2.
16:37:31 ##forth <mforth> Unknown word: 3.
16:37:37 ##forth <cleobuline> if you what additional words LOAD "test.fth" and then LOAD "test2.fth"
16:37:47 ##forth <anthk_> mforth: LOAD "test.fth"
16:37:51 ##forth <anthk_> mforth: WORDS
16:37:51 ##forth <mforth> USERNAME .S . + - * / MOD DUP DROP SWAP OVER ROT >R R> R@ = < > AND OR NOT XOR & | ^ ~ << >> CR EMIT VARIABLE @ ! +! DO LOOP I WORDS LOAD CREATE ALLOT ." CLOCK BEGIN WHILE REPEAT AGAIN SQRT UNLOOP +LOOP PICK CLEAR-STACK PRINT NUM-TO-BIN PRIME? FORGET STRING " 2DROP IMAGE TEMP-IMAGE CLEAR-STRINGS DELAY EXIT MICRO MILLI DOUBLE FACT POW FIBONACCI COUNTDOWN TUCK SUM_SQUARE CUBE SUM_CUBES RECUNACCI
16:38:04 ##forth <anthk_> mforth: 2 SQRT .S
16:38:04 ##forth <mforth> <2> 1 1
16:38:16 ##forth <anthk_> mforth: LOAD "test2.fth" WORDS
16:38:20 ##forth <cleobuline> mforth: : PRINT-ASCII 126 32 1 + DO I NUM-TO-STR 32 EMIT I EMIT 44 EMIT LOOP CR ;
16:38:45 ##forth <cleobuline> ignore command after load
16:39:05 ##forth <cleobuline> PRINT-ASCII
16:39:11 ##forth <cleobuline> mforth: PRINT-ASCII
16:39:11 ##forth <mforth> *33 !,34 ",35 #,36 $,37 %,38 &,39 ',40 (,41 ),42 *,43 +,44 ,,45 -,46 .,47 /,48 0,49 1,50 2,51 3,52 4,53 5,54 6,55 7,56 8,57 9,58 :,59 ;,60 <,61 =,62 >,63 ?,64 @,65 A,66 B,67 C,68 D,69 E,70 F,71 G,72 H,73 I,74 J,75 K,76 L,77 M,78 N,79 O,80 P,81 Q,82 R,83 S,84 T,85 U,86 V,87 W,88 X,89 Y,90 Z,91 [,92 \,93 ],94 ^,95 _,96
16:40:06 ##forth <cleobuline> anthk_: it is not a standart forth , it is build in my own kitchen
16:40:28 ##forth <anthk_> cleobuline: don't worry, neither was the jupiter ace one, forth 79
16:41:00 ##forth <cleobuline> try mforth: HELLO
16:41:19 ##forth <anthk_> mforth: HELLO
16:41:19 ##forth <mforth> Hello anthk_ How are uou ?
16:41:23 ##forth <cleobuline> :
16:41:42 ##forth <anthk_> cleobuline: will you implement eliza :p ?
16:42:16 ##forth <cleobuline> dont' forget mforth: QUIT when you leave the chat to freed the memory of your env
16:43:21 ##forth <cleobuline> if you leave and rejoin it keep you stack and enc in memory
16:43:44 ##forth <cleobuline> do it anthk_
16:44:28 ##forth <cleobuline> it be a headake to implement gets on irc
16:45:35 ##forth <anthk_> on forth, with pfe running sokoban from leo brodie was easy, and amazed on how that tiny code runs sokoban
16:45:53 ##forth <anthk_> and OFC I can adapt the levels from csokoban (cgames) with just few lines
16:47:08 ##forth <cleobuline> anthk_: i do it , for my own challenge to do it for playing
16:47:19 ##forth <anthk_> now, as an exercise, instead of sokoban...
16:47:31 ##forth <anthk_> I'd adapt the zmachine.ps interpreter from postscript to forth
16:49:15 ##forth <cleobuline> this forth is multithread to be use by multi users
16:49:58 ##forth <cleobuline> mforth: 40000 DELAY ." top ! "
16:50:51 ##forth <cleobuline> this will not block you
16:50:51 ##forth <anthk_> now I can't find the interpreter
16:51:18 ##forth <anthk_> ttp://zzo38computer.org/zmachine/interp/zmachine.ps
16:51:44 ##forth <cleobuline> mforth: CREDIT
16:51:48 ##forth <anthk_> on any unix machine, with ghostscript and a Z3 machine game:
16:51:51 ##forth <anthk_> gs -dNOSAFER zmachine.ps -- game.z3
16:51:54 ##forth <anthk_> for instance, zork and friends
16:52:40 ##forth <anthk_> ah, it's down
16:52:44 ##forth <anthk_> I might have a copy there
16:55:20 ##forth <anthk_> mmh nope, not even by connecting the autor by gopher
16:55:28 ##forth <cleobuline> i don't do floating point number
16:55:41 ##forth <cleobuline> instead i do big numbers
16:55:54 ##forth <cleobuline> mforth: 200 FACT
16:56:09 ##forth <cleobuline> mforth: .S
16:56:09 ##forth <mforth> <1> 788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000
16:56:43 ##forth <cleobuline> mforth: 1 - .
16:56:44 ##forth <mforth> 788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374719999999999999999999999999999999999999999999999999
16:56:46 ##forth <anthk_> cleobuline: you can implement f* and such
16:57:06 ##forth <anthk_> I think these can be done in forth themselves right?
16:57:12 ##forth <cleobuline> but i don't want to do :)
16:57:51 ##forth <anthk_> I'd guess */ it's enough for everyone :)
16:57:54 ##forth <cleobuline> it is as complex as it is ...
16:59:15 ##forth <cleobuline> in the origin forth is not built for floating point numbers
16:59:37 ##forth <anthk_> I know, I have the original starting forth book
16:59:50 ##forth <cleobuline> but just robotic purpose to pilot astronomic robots
17:00:36 ##forth <anthk_> the jupiter ace could do far more
17:00:43 ##forth <anthk_> a pity basic won
17:01:26 ##forth <anthk_> I mean, I understand basic was easier for newcomers
17:01:39 ##forth <anthk_> but in the end juggling with line numbers made the programs far more difficult to grasp
17:02:05 ##forth <anthk_> the ace almost was a zx81 with forth right?
17:02:34 ##forth <cleobuline> i start forth with a commodore 64 cartridge
17:03:10 ##forth <cleobuline> i was playing with in my young time
17:03:11 ##forth <anthk_> I run pfe under Unix, but the ace it's a fun exercise
17:04:31 ##forth <anthk_> and, on langs, I used to like awk, but now I prefer jimtcl and forth
17:05:15 ##forth <anthk_> and, yet, your forth implementation supports bigger numbers than jimtcl
17:06:36 ##forth <cleobuline> limited only by memory and buffers sizes
17:07:48 ##forth <cleobuline> it's not a real forth but a toy
17:08:04 ##forth <cleobuline> a toy for irc
17:09:01 ##forth <identity> what's the difference between a 'toy' forth and a 'real' forth?
17:09:24 ##forth <cleobuline> mforth: EURO ." it will be your chance to become millionair "
17:09:24 ##forth <mforth> 1 37 25 36 21 1 6
17:17:19 ##forth <anthk_> mforth: EURO ROT SWAP 2-
17:17:19 ##forth <mforth> 10 1 17 15 7 10 3
17:17:38 ##forth <anthk_> mforth: : 2- 2 - ;
17:17:47 ##forth <anthk_> mforth: EURO ROT SWAP 2-
17:17:47 ##forth <mforth> 21 45 41 7 34 2 7
17:18:08 ##forth <cleobuline> it's not numbers on the stack but a string
17:18:23 ##forth <cleobuline> mforth: SEE EURO
17:18:24 ##forth <mforth> : EURO INIT-RANDOM 50 INIT-NUMS 50 SHUFFLE-NUMS 5 0 DO PICK-NUM DUP NUM-TO-STR 32 EMIT DROP LOOP INIT-STARS SHUFFLE-STARS PICK-STAR DUP NUM-TO-STR 32 EMIT DROP PICK-STAR DUP NUM-TO-STR DROP CR ;
18:18:45 ##forth <cleobuline> mforth: : MULTI-CHAR 0 DO DUP EMIT LOOP CR DROP ;
18:18:49 ##forth <cleobuline> forth: 88 80 MULTI-CHAR .S
18:19:02 ##forth <cleobuline> mforth: 88 80 MULTI-CHAR
18:19:02 ##forth <mforth> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
19:28:57 ##forth <pgimeno> anthk_: there's an appendix in the manual (appendix D in the English version, not sure if it's the same in the Spanish one) on how the JA Forth differs from Forth 79, it's mostly missing a few words but pretty close to the standard overall (just, the 79 standard)
19:30:55 ##forth <pgimeno> "the ace almost was a zx81 with forth right?" <- right, but with redefinable characters, and with hardware video which makes it much faster. See my port of Mazogs which aims for close accuracy. https://codeberg.org/pgimeno/Mazogs/src/branch/jupiter_ace
19:31:09 ##forth <pgimeno> I had to add several delay loops
20:16:46 ##forth <anthk_> pgimeno: your branch has a rom close to forth 79?
20:26:10 ##forth <pgimeno> no, but I have the disassembly of the JA ROM
20:26:29 ##forth <pgimeno> the JA standard ROM is close to Forth 79, see appendix D
21:51:05 ##forth <cleobuline> mforth: CAL
21:51:05 ##forth <mforth> Unknown 50
21:51:05 ##forth <mforth> Mo Tu We Th Fr Sa Su
21:51:27 ##forth <cleobuline> mforth: 4 2025 CAL
21:51:28 ##forth <mforth> April 2025
21:51:28 ##forth <mforth> 1 2 3 4 5 6
22:11:33 ##forth <anthk_> pgimeno: thanks/gracias
22:11:54 ##forth <pgimeno> no hay de qué :)
22:12:25 ##forth <anthk_> it would be fun/interesting to have some forth83 compatible jupiter ROM
22:12:38 ##forth <anthk_> I'd guess most of the terms from starting forth, modulo the edit section
22:12:44 ##forth <anthk_> can be done with a custom dict
22:16:21 ##forth <pgimeno> well, it would have to be paged, I guess
22:16:52 ##forth <pgimeno> there's just 8K in the JA and it's filled to the brink
22:17:13 ##forth <pgimeno> even the character set is stored in compressed form to save some bytes
22:18:22 ##forth <anthk_> how about the jupiter with the 16k module?
22:19:23 ##forth <pgimeno> that's RAM, not ROM, but yeah, placing some of it in RAM would certainly help
22:20:03 ##forth <pgimeno> I guess the remaining words could fit in maybe 10K or so
22:20:47 ##forth <pgimeno> I mean, 2 extra KB or so
22:21:15 ##forth <pgimeno> but then you can just load them from tape as a regular dict I guess
22:23:40 ##forth <anthk_> yes, from tape, in RAM
22:53:45 ##forth <anthk_> btw, did anyone here know pforth?