atarionline.pl Sztuczki w Action! - Forum Atarum

    Jeśli chcesz wziąć udział w dyskusjach na forum - zaloguj się. Jeżeli nie masz loginu - poproś o członkostwo.

    • :
    • :

    Vanilla 1.1.4 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

      • 1:
         
        CommentAuthorGeorge
      • CommentTime6 Oct 2009 10:10
       
      you must calculate euro=suma*nl AFTER you got input for euro and BEFORE you print the sum.
      • 2: CommentAuthorw1k
      • CommentTime6 Oct 2009 10:10
       
      InputS(euro)
      euro=suma*n1
      Print(suma)


      ? :(
      • 3: CommentAuthorGury
      • CommentTime6 Oct 2009 10:10
       
      Hi w1k, I suggest you first try examples in Action! environment, because it's accurate :)

      I also noticed your example is missing declaration for n1 and you used floating point number as the value. This is not supported in Action! language directly, so you must use additional library, which supports this facility. I will implement (probably with the help from other developers) floating point number operation in one of the next releases.

      You also must be careful not to mix numbers and strings when calculating on a variable of particular type.
      • 4:
         
        CommentAuthorGeorge
      • CommentTime6 Oct 2009 11:10
       
      rather suma=euro*n1 in general.
      and of course take what Gury said into consideration.
      Maybe start with integers first.
      • 5:
         
        CommentAuthorCosi
      • CommentTime6 Oct 2009 13:10
       
      Arr, still something's wrong with FOR. I looked into asm code, there's missing:
      inw i
      ldx i
      cpx #11
      jcc for_loop_1

      Actually, former versions didn't lack this code, so maybe something went wrong when you were adding support for STEP?
      • 6: CommentAuthorGury
      • CommentTime6 Oct 2009 15:10
       
      Hej Cosi, can you please provide me with the example where this happened?
      • 7:
         
        CommentAuthorCosi
      • CommentTime6 Oct 2009 16:10
       
      It was the same example as previously:
      PROC start()
      BYTE i
      PrintE("Test Effectusa!")
      FOR i = 1 TO 10
      DO
      PrintCE(i)
      DO
      RETURN

      When I added the missing code to .asm file, the example compiled successfully.
      • 8: CommentAuthorGury
      • CommentTime6 Oct 2009 16:10
       
      Hehe, I made the same mistake. It is the second DO, it should be OD :)
      • 9:
         
        CommentAuthorCosi
      • CommentTime6 Oct 2009 16:10
       
      Damn :D
      • 10: CommentAuthorw1k
      • CommentTime6 Oct 2009 19:10
       
      MODULE

      BYTE ARRAY euro(5)
      BYTE n1,n2
      PROC Main()

      n1=30.1260

      Put(125)
      Setcolor(2,3,2)
      PrintE("*** SLOVAK EUROCALCULATOR 0.2 ***")
      PutE()
      PrintE("Enter the amount in EURO")

      InputS(euro)
      n2=euro*n1
      PrintBE(n2)

      RETURN


      sorry, i dont understand it.. stupid lame :(( ohh
      • 11: CommentAuthorw1k
      • CommentTime7 Oct 2009 10:10
       
      BYTE FUNC LOBYTE(CARD P1)
      RETURN (P1)
      BYTE FUNC HIBYTE(BYTE P1,P2)
      RETURN (P2)
      PROC HLPROGRAM()
      BYTE LO,HI CARD I
      DO
      PUTE()
      PRINTE("insert number")
      I=INPUTC()
      LO=LOBYTE(I)
      HI=HIBYTE(I)
      PRINTB(LO)
      PRINT(" , ")
      PRINTBE(HI)
      OD
      RETURN


      this example doesnt work too
      • 12: CommentAuthorGury
      • CommentTime7 Oct 2009 10:10
       
      Hi w1k, it would be better for you to use commands InputB, InputC or InputI, depending on value you are manipulating on. Command InputS handles strings (arrays of characters). And please, for this example use Action! language, without using floating point values, sorry. Speaking of Effectus, it still does not support InputB and such... I hope in some other version.
      • 13: CommentAuthorw1k
      • CommentTime7 Oct 2009 10:10
       
      gury - ok :)
      • 14:
         
        CommentAuthorCosi
      • CommentTime19 Oct 2009 21:10
       
      Hello Gury!
      Just testing the latest version for Linux and found some bugs:
      - BYTE, CARD and INT are still case-sensitive
      - ARRAY doesn't work at all (!), the compiler outputs:
      ERROR: Undeclared label SET (BANK=0)
      - DO ... OD structures without a loop don't work either:
      ERROR: Undeclared label LOOP0 (BANK=0)
      • 15: CommentAuthorGury
      • CommentTime22 Oct 2009 12:10
       
      Hi Cosi,

      Can you please provide me with the examples you used for the test?
      • 16:
         
        CommentAuthorCosi
      • CommentTime22 Oct 2009 14:10
       
      I wrote something like:
      PROC Start()
      BYTE ARRAY k
      BYTE i
      CARD j
      INT m
      DO
      k(0)=1
      OD
      RETURN

      and tried to change every keyword to lower case.
      • 17: CommentAuthorw1k
      • CommentTime25 Oct 2009 11:10
       
      is effectus support for ALL INPUTS?
      • 18: CommentAuthorGury
      • CommentTime26 Oct 2009 09:10
       
      Thanks Cosi. I will check character sensitiveness and fix the problem for the next version.

      w1k - Unfortunatelly the current version supports just InputS command for handling strings, but all other functions (InputB, InputC, InputI...) are queued for implementation in one of the next versions. I am so sorry, but I am very busy lately (and real life), so my projects are on hold now, but I will return to them as soon as possible.

      In meantime, I hope someone will look up at the source code of Effectus and help me with implementing new features.
      • 19: CommentAuthorw1k
      • CommentTime26 Oct 2009 11:10
       
      gury: ok and good luck
      • 20: CommentAuthorw1k
      • CommentTime31 Dec 2009 14:12
       
      great action reference:

      ->link<-

      what's new with effectus?
      • 21: CommentAuthorGury
      • CommentTime6 Jan 2010 10:01
       
      Hello w1k,

      It's great reference, I will read it sometime, thanks. Concernig Effectus... The project is on hold, because I have no time for 2 months now. There is little time after work, but I hope I will return to old track. Till then, Source code is available, so anybody can continue with adding new features or modifying the source and the commands. Of course, I will return and bring more features.

      To you and all, Happy New Year 2010!
      Gury
      • 22: CommentAuthorw1k
      • CommentTime26 Jun 2010 09:06
       
      new version available :)
      0.0.14

      ->link<-
      • 23: CommentAuthorw1k
      • CommentTime24 Oct 2011 13:10
       
      hello, whats new with effectus?
      • 24:
         
        CommentAuthorKaz
      • CommentTime14 Mar 2019 01:03
       
      Przypominam, że najnowsza wersja to 0.2.3

      ->link<-

      i brakuje jej do końca niewiele:

      ->link<-
      • 25: CommentAuthorzbyti
      • CommentTime17 Nov 2019 17:11
       
      Effectus 0.3.1 (Version date 2.11.2019) ->link<-
      • 26:
         
        CommentAuthorbocianu
      • CommentTime17 Nov 2019 19:11
       
      To kto przepisuje Stary dom na action? :)
      • 27: CommentAuthorzbyti
      • CommentTime17 Nov 2019 19:11
       
      @TDC jak skończy inne swoje projekty ;)
      • 28: CommentAuthorzbyti
      • CommentTime11 May 2020 13:05 zmieniony
       
      wpis powtórzony intecjonalnie ->link<-

      Ciekawy sposób by móc pobawić się w Action! stroną zerową, bo w standardize mamy tylko parę komórek dla siebie, od $CA do $CE.

      DEFINE SaveTemps=[
      $A2 $07 ; LDX #7
      $B5 $C0 ; LOOP LDA $C0,X
      $48 ; PHA
      $B5 $A0 ; LDA $A0,X
      $48 ; PHA
      $B5 $80 ; LDA $80,X
      $48 ; PHA
      $B5 $A8 ; LDA $A8,X
      $48 ; PHA
      $CA ; DEX
      $10 $F1 ; BPL LOOP
      $A5 $D3 ; LDA $D3
      $48 ; PHA
      ]

      DEFINE GetTemps=[
      $68 ; PLA
      $85 $D3 ; STA $D3
      $A2 $00 ; LDX #0
      $68 ; LOOP PLA
      $95 $A8 ; STA $A8,X
      $68 ; PLA
      $95 $80 ; STA $80,X
      $68 ; PLA
      $95 $A0 ; STA $A0,X
      $68 ; PLA
      $95 $C0 ; STA $C0,X
      $E8 ; INX
      $E0 $08 ; CPX #8
      $D0 $EF ; BNE LOOP
      ]"

      ->link<-