Új hozzászólás Aktív témák

  • Szirty

    őstag

    válasz m_zoli #7007 üzenetére

    Vagy így:

    .
    L 2#10000000000000 //Időalap 1s-re
    T #OUTTMP
    L #IN
    T #INTMP
    // Ha #IN negatív vagy nagyobb 9990-nél, akkor 0 értékkel kilép
    O(
    L #IN
    L 0
    <I
    )
    O(
    L #IN
    L 9990
    >I
    )
    JC END
    //Ha #IN nagyobb 999-nél, akkor beállítja az időalapot 10s-re (egyébkélnt 1s marad)
    //és elosztjuk 10-el bemenő adatot
    L #IN
    L 999
    >I
    JCN CNV
    L 2#11000000000000 //Időalap 10s-re
    T #OUTTMP
    L #IN
    L 10
    /I
    T #INTMP

    // A bemenúő adatot BCD-be konvertáljuk
    CNV: L #INTMP
    ITB
    L #OUTTMP
    OW
    T #OUTTMP

    END: L #OUTTMP
    T #OUT
    SET
    SAVE

    Persze az ilyen másodperc alapú konverziónál vigyázni kell, mert 16 perc 39 másodperc után (999 sec) már 10 másodperces az időalap. Tehát 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008 és 1009 is egyformán 16 perc 40 másodpercet fog adni, 1010 meg 16 perc 50 másodpercet egészen 1019-ig, és így tovább... :)

Új hozzászólás Aktív témák