Calendar - for "REAL" programmers: Difference between revisions
Content added Content deleted
(Added a C versoin) |
(→{{header|M2000 Interpreter}}: include Snoopy) |
||
Line 2,347: | Line 2,347: | ||
<lang M2000 Interpreter> |
<lang M2000 Interpreter> |
||
GLOBAL CONST PRINT_IT AS BOOLEAN=FALSE |
|||
MODULE GLOBAL SNOOPY { |
|||
IF NOT PRINT_IT THEN CURSOR 0,ROW ELSE IF ROW>0 THEN PAGE 1 |
|||
PRINT $(,8) |
|||
PRINT #-2, { |
|||
XXXX |
|||
X XX |
|||
X *** X XXXXX |
|||
X ***** X XXX XX |
|||
XXXX ******* XXX XXXX XX |
|||
XX X ****** XXXXXXXXX El@ XX XXX |
|||
XX X **** X X** X |
|||
X XX XX X X***X |
|||
X //XXXX X XXXX |
|||
X // X XX |
|||
X // X XXXXXXXXXXXXXXXXXX/ |
|||
X XXX// X X |
|||
X X X X X |
|||
X X X X X |
|||
X X X X X XX |
|||
X X X X X XXX XX |
|||
X XXX X X X X X X |
|||
X X X XX X XXXX |
|||
X X XXXXXXXX\ XX XX X |
|||
XX XX X X @X XX |
|||
XX XXXX XXXXXX/ X XXXX |
|||
XXX XX*** X X |
|||
XXXXXXXXXXXXX * * X X |
|||
*---* X X X |
|||
*-* * XXX X X |
|||
*- * XXX X |
|||
*- *X XXX |
|||
*- *X X XXX |
|||
*- *X X XX |
|||
*- *XX X X |
|||
* *X* X X X |
|||
* *X * X X X |
|||
* * X** X XXXX X |
|||
* * X** XX X X |
|||
* ** X** X XX X |
|||
* ** X* XXX X X |
|||
* ** XX XXXX XXX |
|||
* * * XXXX X X |
|||
* * * X X X |
|||
=======******* * * X X XXXXXXXX\ |
|||
* * * /XXXXX XXXXXXXX\ ) |
|||
=====********** * X ) \ ) |
|||
====* * X \ \ )XXXXX |
|||
=========********** XXXXXXXXXXXXXXXXXXXXXX |
|||
} |
|||
} |
|||
MODULE CALENDAR (YEAR, LOCALEID) { |
MODULE CALENDAR (YEAR, LOCALEID) { |
||
FUNCTION GETMAX(YEAR, MONTH) { |
FUNCTION GETMAX(YEAR, MONTH) { |
||
Line 2,365: | Line 2,417: | ||
} |
} |
||
LOCALE LOCALEID |
LOCALE LOCALEID |
||
CURSOR 0,HEIGHT-1 ' LAST LINE, SO EACH NEW LINE SCROLL ALL LINES UP |
IF NOT PRINT_IT THEN CURSOR 0,HEIGHT-1 ' LAST LINE, SO EACH NEW LINE SCROLL ALL LINES UP |
||
SNOOPY |
|||
PRINT UNDER ' PRINT UNDERLINE |
PRINT UNDER ' PRINT UNDERLINE |
||
PRINT OVER $(2), YEAR |
PRINT OVER $(2), YEAR |
||
Line 2,373: | Line 2,426: | ||
PRINT |
PRINT |
||
FOR I=1 TO 6 { |
FOR I=1 TO 6 { |
||
MONTH=I+J*6 |
MONTH=I+J*6 |
||
PRINT PART @((I-1)*22), $(2,21), UCASE$(LOCALE$(55+MONTH)) |
PRINT PART @((I-1)*22), $(2,21), UCASE$(LOCALE$(55+MONTH)) |
||
} |
} |
||
Line 2,412: | Line 2,465: | ||
} |
} |
||
} |
} |
||
WHILE INKEY$<>"" : END WHILE |
|||
⚫ | |||
IF PRINT_IT THEN PRINTING ON |
|||
⚫ | |||
FONT "COURIER NEW" |
|||
K=KEY$ ' WAIT KEY |
|||
PEN 0 |
|||
⚫ | |||
CLS 15, 0 |
|||
⚫ | |||
⚫ | |||
GOSUB WAITKEY_OR_MOUSE |
|||
FOR I=2019 TO 2025 |
|||
⚫ | |||
GOSUB WAITKEY_OR_MOUSE |
|||
NEXT I |
|||
IF PRINT_IT THEN PRINTING OFF |
|||
CLEAR ' CLEAR VARIABLES FROM THIS MODULE |
|||
KEYBOARD "INFO"+CHR$(13) |
|||
END |
|||
WAITKEY_OR_MOUSE: |
|||
IF PRINT_IT THEN RETURN |
|||
WHILE INKEY$="" AND MOUSE=0 |
|||
END WHILE |
|||
RETURN |
|||
</lang> |
</lang> |