Rev 4867 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4867 | leency | 1 | DECIMAL |
9587 | vitalkrilo | 2 | S" /sys/menuet.f" INCLUDED |
4867 | leency | 3 | |
4 | : not_emit |
||
5 | emit_proc DUP @ NOT SWAP ! ; |
||
6 | |||
7 | new_reg wnd_size |
||
8 | |||
9 | CREATE Music $3090 , \ $90 C, $30 C, 0 C, |
||
10 | |||
11 | 73 CONSTANT img.width |
||
12 | 22 CONSTANT img.height |
||
13 | CREATE raw img.width img.height * 3 * 16 + ALLOT |
||
14 | |||
15 | : my_wnd |
||
16 | 12 ax 1 bx sysv DROP $805080D0 DUP $02AABBCC 200 150 << 200 DUP << 0 |
||
17 | sys6 2 bx sysv 2DROP |
||
18 | $10DDEEFF $" Џђ€Њ…ђ ЏђЋѓђЂЊЊ›" COUNT 8 DUP sys_print |
||
19 | |||
20 | $6688DD 1 5 12 << 200 19 - 12 << 8 sys5 DROP |
||
21 | 30 DUP << img.width img.height << raw 12 + 7 sys4 ; |
||
22 | |||
23 | : my_wnd_resize |
||
24 | 200 dx 50 si 67 ax -1 DUP bx cx sysv DROP ; |
||
25 | |||
26 | : my_key |
||
27 | 2 sys1 8 RSHIFT DUP 96 = IF not_emit DROP ELSE Music DUP si 1+ C! |
||
28 | 55 DUP ax bx sysv DROP THEN ; |
||
29 | |||
30 | : my_btn |
||
31 | 17 sys1 8 RSHIFT ." Pressed button #" DUP . CR 1 = IF BYE THEN ; |
||
32 | |||
33 | CREATE handlers ' my_wnd , ' my_key , ' my_btn , |
||
34 | |||
35 | VARIABLE hnd |
||
36 | |||
37 | : msg_loop_console ( subs -- ) |
||
38 | CR DUP hnd ! @EXECUTE my_wnd_resize |
||
39 | |||
40 | BEGIN |
||
41 | 10 sys1 ?DUP |
||
42 | IF |
||
43 | 1- |
||
44 | CELLS hnd @ + @EXECUTE |
||
45 | emit_proc @ |
||
46 | IF |
||
47 | WINDOW KEY 96 = |
||
48 | IF |
||
49 | not_emit hnd @ @EXECUTE my_wnd_resize |
||
50 | ELSE |
||
51 | EXIT |
||
52 | THEN |
||
53 | THEN |
||
54 | THEN |
||
55 | AGAIN ; |
||
56 | |||
57 | CREATE gif 600 ALLOT |
||
58 | |||
59 | |||
60 | : new_me ( new main loop) |
||
9587 | vitalkrilo | 61 | gif DUP $" /sys/Menu.gif" COUNT READ 2DROP |
4867 | leency | 62 | gif raw READ_GIF . |
63 | ; |
||
64 | |||
65 | new_me handlers msg_loop_console WORDS |
||
66 | |||
67 | ABORT |
||
68 | |||
69 | |||
70 | : ENDOF ( orig1 #of -- orig2 #of ) |
||
71 | >R ( переместить со стека в случае, если ) |
||
72 | ( стек потока управления это стек данных. ) |
||
73 | POSTPONE ELSE |
||
74 | R> ( мы должны теперь вернуть счетчик назад ) |
||
75 | ; IMMEDIATE |
||
76 | |||
77 | : ENDCASE ( orig1..orign #of -- ) |
||
78 | |||
79 | POSTPONE DROP ( удалить case параметр ) |
||
80 | |||
81 | POSTPONE THEN |
||
82 | LOOP |
||
83 | ; IMMEDIATE |
||
84 | |||
85 | [THEN] |
||
86 | |||
87 | : SS2 ( N ---> S:СУММА КВАДРАТОВ ОТ 1 ДО N) |
||
88 | |||
89 | 1+ 1 ( S[0],N+1,1 ) |
||
90 | DO I ( S[I-1],I ) |
||
91 | DUP * + ( S[I] S[I]=S[I-1]+I*I) |
||
92 | LOOP ; ( S[N] ) |
||
93 | |||
94 | |||
95 | 5 SS2 . CR |
||
96 | |||
97 | : test 10 0 ?DO I . LEAVE LOOP 4 ; |
||
98 | test |
||
99 | |||
100 | : priem ( N:НОМЕР ДНЯ->) CASE |
||
101 | 3 OF ." nepriemn" ENDOF |
||
102 | |||
103 | 1 OF ." priemn" ENDOF |
||
104 | |||
105 | 6 OF ." holiday" ENDOF |
||
106 | |||
107 | CR . ." - day #?" ABORT |
||
108 | ( ENDCASE ) ." day" ;><>><>><>><>><>><> |
||
109 |