Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
|
|
@ -0,0 +1,97 @@
|
|||
' VERSION 16-03-2016
|
||||
' COMPILE WITH: FBC -S CONSOLE
|
||||
|
||||
' TRUE/FALSE ARE BUILT-IN CONSTANTS SINCE FREEBASIC 1.04
|
||||
' BUT WE HAVE TO DEFINE THEM FOR OLDER VERSIONS.
|
||||
#IFNDEF TRUE
|
||||
#DEFINE FALSE 0
|
||||
#DEFINE TRUE NOT FALSE
|
||||
#ENDIF
|
||||
|
||||
FUNCTION WD(M AS INTEGER, D AS INTEGER, Y AS INTEGER) AS INTEGER
|
||||
' ZELLERISH
|
||||
' 0 = SUNDAY, 1 = MONDAY, 2 = TUESDAY, 3 = WEDNESDAY
|
||||
' 4 = THURSDAY, 5 = FRIDAY, 6 = SATURDAY
|
||||
|
||||
IF M < 3 THEN ' IF M = 1 OR M = 2 THEN
|
||||
M += 12
|
||||
Y -= 1
|
||||
END IF
|
||||
RETURN (Y + (Y \ 4) - (Y \ 100) + (Y \ 400) + D + ((153 * M + 8) \ 5)) MOD 7
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION LEAPYEAR(Y AS INTEGER) AS INTEGER
|
||||
|
||||
IF (Y MOD 4) <> 0 THEN RETURN FALSE
|
||||
IF (Y MOD 100) = 0 ANDALSO (Y MOD 400) <> 0 THEN RETURN FALSE
|
||||
RETURN TRUE
|
||||
END FUNCTION
|
||||
|
||||
' ------=< MAIN >=------
|
||||
' HARD CODED FOR 132 CHARACTERS PER LINE
|
||||
|
||||
DIM AS STRING WDN = "MO TU WE TH FR SA SU" ' WEEKDAY NAMES
|
||||
DIM AS STRING MO(1 TO 12) => {"JANUARY", "FEBRUARY", "MARCH", "APRIL", _
|
||||
"MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", _
|
||||
"OCTOBER", "NOVEMBER", "DECEMBER"}
|
||||
DIM AS STRING TMP1, TMP2, D(1 TO 12)
|
||||
|
||||
DIM AS UINTEGER ML(1 TO 12) => {31,28,31,30,31,30,31,31,30,31,30,31}
|
||||
DIM AS UINTEGER I, I1, J, K, Y = 1969
|
||||
|
||||
'SCREENRES 1080,600,8
|
||||
|
||||
IF LEAPYEAR(Y) = TRUE THEN ML(2) = 29
|
||||
|
||||
TMP1 = ""
|
||||
FOR I = 1 TO 31
|
||||
TMP1 = TMP1 + RIGHT((" " + STR(I)), 3)
|
||||
NEXT I
|
||||
|
||||
|
||||
FOR I = 1 TO 12
|
||||
TMP2 = ""
|
||||
J = WD(I,1, Y)
|
||||
IF J = 0 THEN J = 7
|
||||
J = J - 1
|
||||
TMP2 = SPACE(J * 3) + LEFT(TMP1, ML(I) * 3) + SPACE(21)
|
||||
D(I) = TMP2
|
||||
NEXT I
|
||||
|
||||
PRINT
|
||||
TMP1 = "INSERT YOUR SNOOPY PICTURE HERE"
|
||||
PRINT SPACE((132 - LEN(TMP1)) \ 2); TMP1
|
||||
PRINT
|
||||
TMP1 = STR(Y)
|
||||
PRINT SPACE((132 - LEN(TMP1)) \ 2); TMP1
|
||||
PRINT
|
||||
|
||||
' 6 MONTH ON A ROW
|
||||
TMP2 = " "
|
||||
FOR I = 1 TO 6
|
||||
TMP2 = TMP2 + WDN
|
||||
IF I < 6 THEN TMP2 = TMP2 + " "
|
||||
NEXT I
|
||||
|
||||
FOR I = 1 TO 12 STEP 6
|
||||
TMP1 = ""
|
||||
FOR J = I TO I + 4
|
||||
TMP1 = TMP1 + LEFT(SPACE((22 - LEN(MO(J))) \ 2) + MO(J) + SPACE(11), 22)
|
||||
NEXT J
|
||||
TMP1 = TMP1 + SPACE((22 - LEN(MO(I + 5))) \ 2) + MO(I + 5)
|
||||
PRINT TMP1
|
||||
PRINT TMP2
|
||||
FOR J = 1 TO 85 STEP 21
|
||||
FOR K = I TO I + 4
|
||||
PRINT MID(D(K), J ,21); " ";
|
||||
NEXT K
|
||||
PRINT MID(D(I + 5), J ,21)
|
||||
NEXT J
|
||||
PRINT
|
||||
NEXT I
|
||||
|
||||
' EMPTY KEYBOARD BUFFER
|
||||
WHILE INKEY <> "" : WEND
|
||||
PRINT : PRINT "HIT ANY KEY TO END PROGRAM"
|
||||
SLEEP
|
||||
END
|
||||
|
|
@ -0,0 +1 @@
|
|||
return repeat(' ',left)&s&repeat(' ',right)
|
||||
|
|
@ -0,0 +1 @@
|
|||
return repeat(' ',left)&upper(s)&repeat(' ',right)
|
||||
|
|
@ -0,0 +1 @@
|
|||
initialSymEntry("integer", S_Type,"TI",opInt, E_none) -- #01 / 0b0001 integer
|
||||
|
|
@ -0,0 +1 @@
|
|||
Alias("INTEGER",symlimit)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
procedure tt_stringA(sequence text, integer alias)
|
||||
tt_string(text,-2)
|
||||
tt[pcurr] = alias
|
||||
end procedure
|
||||
|
|
@ -0,0 +1 @@
|
|||
global constant T_include = 596 tt_stringF("include",T_include)
|
||||
|
|
@ -0,0 +1 @@
|
|||
tt_stringA("INCLUDE",T_include)
|
||||
|
|
@ -0,0 +1 @@
|
|||
Ch = find(Ch,escchar)
|
||||
|
|
@ -0,0 +1 @@
|
|||
Ch = find(lower(Ch),escchar)
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
-> DT { ('DATE'.("\LWC") + 'TIME'.("\LWC")).("\LREQUIRE") }
|
||||
|
||||
-> MONTHS_PER_COL { 6 }
|
||||
-> WEEK_DAY_NAMES { <MO TU WE TH FR SA SU> }
|
||||
-> MONTH_NAMES { <JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC> }
|
||||
|
||||
-> FMT_MONTH (YEAR, MONTH, STR="", WEEK_DAY=0) {
|
||||
STR = "%11\LS\E%9\LS\E\12".("\LSPRINTF")(MONTH_NAMES()[MONTH-1],'')
|
||||
STR += (WEEK_DAY_NAMES().("\LJOIN")(' ') + "\12")
|
||||
|
||||
-> DATE { DT().("\LNEW")("\LYEAR" => YEAR, "\LMONTH" => MONTH) }
|
||||
|
||||
WEEK_DAY = DATE().("\LDAY_OF_WEEK")
|
||||
STR += ([" "] * WEEK_DAY-1 -> ("\LJOIN")(" "))
|
||||
|
||||
-> LAST_DAY {
|
||||
DT().("\LLAST_DAY_OF_MONTH")(
|
||||
"\LYEAR" => YEAR, "\LMONTH" => MONTH
|
||||
).("\LDAY")
|
||||
}
|
||||
|
||||
(DATE().("\LDAY") .. LAST_DAY()).("\LEACH")({ |DAY|
|
||||
(WEEK_DAY ~~ (2..7)) && (STR += " ")
|
||||
|
||||
(WEEK_DAY == 8) && (
|
||||
STR += "\12"
|
||||
WEEK_DAY = 1
|
||||
)
|
||||
STR += ("%2\LD" % DAY)
|
||||
++WEEK_DAY
|
||||
})
|
||||
(WEEK_DAY < 8) && (STR += " ")
|
||||
STR += ([" "] * 8-WEEK_DAY -> ("\LJOIN")(" "))
|
||||
STR += "\12"
|
||||
}
|
||||
|
||||
-> FMT_YEAR (YEAR, STR="", MONTH_STRS=[]) {
|
||||
MONTH_STRS = 12.("\LOF")({|I| FMT_MONTH(YEAR, I).("\LLINES") })
|
||||
|
||||
STR += (' '*(MONTHS_PER_COL()*10 + 2) + YEAR + "\12")
|
||||
(0..11 -> ("\LBY")(MONTHS_PER_COL())).("\LEACH")({ |MONTH|
|
||||
MONTH_STRS[MONTH] && ->() {
|
||||
{ |I|
|
||||
MONTH_STRS[MONTH + I - 1] && (
|
||||
STR += MONTH_STRS[MONTH + I - 1].("\LSHIFT")
|
||||
STR += ' '*2
|
||||
)
|
||||
} * MONTHS_PER_COL()
|
||||
|
||||
STR += "\12"
|
||||
MONTH_STRS[MONTH] && __FUNC__()
|
||||
}()
|
||||
STR += "\12"
|
||||
})
|
||||
|
||||
STR
|
||||
}
|
||||
|
||||
FMT_YEAR(ARGV ? ARGV[0].("\LTO_I") : 1969).("\LPRINT")
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
(SETQ YR 1969)
|
||||
(SETQ M #("JANUARY" "FEBRUARY" "MARCH" "APRIL" "MAY" "JUNE" "JULY" "AUGUST" "SEPTEMBER" "OCTOBER" "NOVEMBER" "DECEMBER"))
|
||||
(SETQ ML #(31 28 31 30 31 30 31 31 30 31 30 31))
|
||||
(SETQ WD #("SU" "MO" "TU" "WE" "TH" "FR" "SA"))
|
||||
(IF (AND (= (REM YR 4) 0) (OR (/= (REM YR 100) 0) (= (REM YR 400) 0))) (VECTOR-SET! ML 1 29))
|
||||
(SETQ D (REM (+ 1 (+ (* 5 (REM (- YR 1) 4)) (* 4 (REM (- YR 1) 100)) (* 6 (REM (- YR 1) 400)))) 7))
|
||||
(TERPRI)
|
||||
(DO ((I 0 (+ I 1))) ((> I 60))
|
||||
(PRINC " "))
|
||||
(PRINC "SNOOPY CALENDAR ")
|
||||
(PRINC YR)
|
||||
(TERPRI)
|
||||
(DO ((I 0 (+ I 1))) ((> I 11))
|
||||
(TERPRI)
|
||||
(DO ((J 0 (+ J 1))) ((> J 65))
|
||||
(PRINC " "))
|
||||
(PRINC (VECTOR-REF M I))
|
||||
(TERPRI)
|
||||
(PRINC " ")
|
||||
(DO ((J 0 (+ J 1))) ((> J 6))
|
||||
(DO ((K 0 (+ K 1))) ((> K 14))
|
||||
(PRINC " "))
|
||||
(PRINC (VECTOR-REF WD J))
|
||||
(PRINC " "))
|
||||
(TERPRI)
|
||||
(DO ((J 0 (+ J 1))) ((> J 6))
|
||||
(IF (< J D) (DO ((K 0 (+ K 1))) ((> K 18)) (PRINC " "))))
|
||||
(DO ((J 1 (+ J 1))) ((> J (VECTOR-REF ML I)))
|
||||
(PRINC " ")
|
||||
(IF (< J 10) (PRINC " "))
|
||||
(DO ((K 0 (+ K 1))) ((> K 14))
|
||||
(PRINC " "))
|
||||
(PRINC J)
|
||||
(SETQ D (+ D 1))
|
||||
(IF (> D 6) (TERPRI))
|
||||
(IF (> D 6) (SETQ D 0))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue