Welcome, Guest. Please login or register.


Author Topic: FORTH (Read 9665 times)

Offline vargham

  • User
  • *
  • Posts: 77
  • Country: hu
Re: FORTH
« Reply #15 on: 2023.December.28. 20:52:11 »
IS-FORTH alatt hogyan lehet 80 oszlopos módba váltani?

Online SlashNet

  • EP addict
  • *
  • Posts: 1213
  • Country: ua
  • Enterprise 128K | Cubietruck
    • My old site about Enterprise
Re: FORTH
« Reply #16 on: 2023.December.28. 21:24:43 »
[ Guests cannot view attachments ]

Quote
-TEXT +n-
Sets up and displays 24 lines of text with +n columns (40 or 80). Resets the current graphics and text channel numbers. Closes the graphics channel if open.

Offline vargham

  • User
  • *
  • Posts: 77
  • Country: hu
Re: FORTH
« Reply #17 on: 2023.December.29. 18:21:59 »
Próbáltam, nem csinál semmit. Hibaüzenetet sem ad. Marad 40 oszlopos a képernyő.

Offline Lacika

  • EP addict
  • *
  • Posts: 3199
  • Country: hu
    • http://www.ep128.hu
Re: FORTH
« Reply #18 on: 2023.December.29. 18:58:20 »
80 -TEXT

Offline vargham

  • User
  • *
  • Posts: 77
  • Country: hu
Re: FORTH
« Reply #19 on: 2023.December.29. 19:16:27 »
ÁÁÁÁ, de hülye voltam. Kösz. Simán lehagytam előle a kötőjelet... Az agyam valahogy nem úgy processzálta, hogy az egy begépelendő karakter.
Nagyon köszönöm.

Offline Lacika

  • EP addict
  • *
  • Posts: 3199
  • Country: hu
    • http://www.ep128.hu

Offline vargham

  • User
  • *
  • Posts: 77
  • Country: hu
Re: FORTH
« Reply #21 on: 2023.December.29. 19:32:18 »
Akkor itt az első Forth programom:
Code: [Select]
EMPTY
: STAR 42 EMIT ; ( -- )
: 03ROLL 3 0 DO 3 ROLL LOOP ; ( n1, n2, n3, n4, -- n4, n1, n2, n3 )
: 3DUP 4 1 DO 2 PICK LOOP ; ( n1, n2, n3 -- n1, n2, n3, n1, n2, n3 )
: PUTSTAR 3DUP + SWAP MOD 0 = 03ROLL - SWAP MOD 0 = OR IF STAR ELSE SPACE THEN ; ( n1, n2, n3 -- )
: ROW 37 0 DO 2DUP I SWAP PUTSTAR LOOP 2DROP ; ( n1, n2 -- )
: SECTION DUP 1 + 0 DO CR DUP I ROW LOOP DROP ; ( n -- )
: STARS BEGIN DUP SECTION REPEAT ; ( patternsize -- )
A verembe kell tenni a minta méretét, és utána a STARS szóval indul. Pl: 8 STARS

Offline Lacika

  • EP addict
  • *
  • Posts: 3199
  • Country: hu
    • http://www.ep128.hu
Re: FORTH
« Reply #22 on: 2023.December.30. 16:13:17 »
Újabb FORTH program:

Code: [Select]
: READKEY
  1+ BEGIN KEY 48 -
     2DUP > OVER 0 > AND IF
       DUP 48 + EMIT CR SWAP DROP EXIT
    THEN DROP
  REPEAT ;
: 21GAME CLS 102 #GRAPHICS
  0 2 RND
  ." 21 is a two player game." CR
  ." The game is played by choosing a number (1, 2 or 3) to be added to the running total. "
  ." The game is won by the player whose chosen number causes the running total to reach exactly 21." CR
  ." The running total starts at zero. One player will be the computer"
  CR
  BEGIN
    1 SWAP -
    3 INK
    CR ." The sum is " OVER . CR
    1 INK
    DUP 1 = IF
      SWAP
      ." How many would you like add?"
      ."  (1-3) " 3 READKEY
    THEN
    DUP 0 = IF
      ." It is the computer's turn."
      SWAP 4 OVER 1- 4 MOD -
      DUP 4 = IF 3 RND 1+ MIN THEN
      DUP CR ." Computer adds " . CR
    THEN
    +
    SWAP
  OVER 21 < NOT UNTIL
  CR 3 INK
  0 = IF ." Bad luck. Computer wins."
  ELSE ." Congratulations. You win."
  THEN CR DROP 1 INK 101 #GRAPHICS
 ;

Ez alapján készült.

Offline Lacika

  • EP addict
  • *
  • Posts: 3199
  • Country: hu
    • http://www.ep128.hu
Re: FORTH
« Reply #23 on: 2023.December.30. 16:39:41 »
A két IF ág ELSE-vel egyszerűsítve:
Code: [Select]
: READKEY
  1+ BEGIN KEY 48 -
     2DUP > OVER 0 > AND IF
       DUP 48 + EMIT CR SWAP DROP EXIT
    THEN DROP
  REPEAT ;
: 21GAME CLS 102 #GRAPHICS
  0 2 RND
  ." 21 is a two player game." CR
  ." The game is played by choosing a number (1, 2 or 3) to be added to the running total. "
  ." The game is won by the player whose chosen number causes the running total to reach exactly 21." CR
  ." The running total starts at zero. One player will be the computer."
  CR
  BEGIN
    1 SWAP -
    3 INK
    CR ." The sum is " OVER . CR
    1 INK
    DUP 1 = IF
      SWAP
      ." How many would you like add?"
      ."  (1-3) " 3 READKEY
    ELSE
      ." It is the computer's turn."
      SWAP 4 OVER 1- 4 MOD -
      DUP 4 = IF 3 RND 1+ MIN THEN
      DUP CR ." Computer adds " . CR
    THEN
    +
    SWAP
  OVER 21 < NOT UNTIL
  CR 3 INK
  0 = IF ." Bad luck. Computer wins."
  ELSE ." Congratulations. You win."
  THEN CR DROP 1 INK 101 #GRAPHICS
 ;
 

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: FORTH
« Reply #24 on: 2023.December.30. 16:49:51 »
Nem semmi! :shock: Az én agyam nem veszi be ezt a nyakatekert szintaxist :oops:

Offline vargham

  • User
  • *
  • Posts: 77
  • Country: hu
Re: FORTH
« Reply #25 on: 2023.December.30. 18:57:03 »
Nem semmi! :shock: Az én agyam nem veszi be ezt a nyakatekert szintaxist :oops:
Nekem másfél nap volt megírni a csillagrajzolót olyanra, amilyenre akartam. Pedig amúgy programozóként dolgozom. :-D Szóval nekem is nehéz volt. Szünidei kihívásnak vettem.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14739
  • Country: hu
    • http://enterprise.iko.hu/
Re: FORTH
« Reply #26 on: 2023.December.30. 19:02:17 »
Nekem másfél nap volt megírni a csillagrajzolót olyanra, amilyenre akartam.
Ez amúgy a karácsonyi csillagos? Be is küldted nekik?

Offline Lacika

  • EP addict
  • *
  • Posts: 3199
  • Country: hu
    • http://www.ep128.hu
Re: FORTH
« Reply #27 on: 2023.December.30. 20:31:21 »
Következőnek, amit kinéztem magamnak, az a Demo kazettáról az Animan.
Bár ott elég sokat kellene zsonglőrködni a veremmel, meg a cindexszel is.

Offline vargham

  • User
  • *
  • Posts: 77
  • Country: hu
Re: FORTH
« Reply #28 on: 2023.December.30. 21:33:11 »
Ez amúgy a karácsonyi csillagos? Be is küldted nekik?
Az adta az alapötletet. De el is késtem vele, meg nem pont azt csinálja a program. Még le kéne vágni a sarkokat, hogy oda ne rajzoljon. Forthban még nem jutottam el idáig. :-)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9952
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: FORTH
« Reply #29 on: 2023.December.31. 08:10:10 »
Ez vajon miért nem működik?

( Vangelis )
: PL
  DURATION PITCH 1 SOUND
;

: VANGELIS
  0 63 63 2 PHASE 0 -10 -10 4 PHASE
  0 -40 -40 20 PHASE 1 ENVELOPE
  160 LEFT 160 RIGHT
...
Nem értek hozzá, de nem lehet, hogy ilyesmi kellene?

: PL
  160 LEFT 160 RIGHT ENVELOPE DURATION PITCH 1 SOUND

És az envelope és a duration után/elé is kellene valami szám/változó? Az envelope fázisok végére pedig nem kellene a LEFT és a RIGHT? És az envelope fázisai mennének előbbre, utána a sound, ami megszólaltatja?
Amúgy a számok alapján nekem nem Vangelisnek tűnik, hanem valami klasszikus lehet, de meg nem mondom, micsoda...
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos