-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathWindow.fiv
161 lines (161 loc) · 2.24 KB
/
Window.fiv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
WINDOW
!00000017
: window windowdemo ;
-*-
v
SCROLL
!0000014D
: scroll
0 0 \ es:ds si:di
4 pick 8 shl \ dh
6 pick + 8 shl \ dl
7 pick + 8 shl \ ch
8 pick + \ cl
4 pick 16 shl \ bh bl->0
4 pick 0< if 7 + 8 shl 4 pick negate +
else 6 + 8 shl 4 pick + endif
16 int
drop drop drop drop drop
drop drop drop drop drop drop
;
-*-
>
W1COLOR
!00000015
31 constant w1color
-*-
>
W2COLOR
!00000015
79 constant w2color
-*-
>
W3COLOR
!00000016
121 constant w3color
-*-
>
W1SCRL
!0000002B
: w1scrl
1 1 38 10 w1color 1 scroll
;
-*-
>
W2SCRL
!0000002D
: w2scrl
41 1 78 10 w2color 1 scroll
;
-*-
>
W3SCRL
!0000002E
: w3scrl
1 13 78 22 w3color -1 scroll
;
-*-
>
WINDOWS
!00000067
: windows
0 0 39 11 w1color 0 wbox
40 0 79 11 w2color 0 wbox
0 12 79 23 w3color 0 wbox
;
-*-
v
ULCORN
!00000015
201 constant ulcorn
-*-
>
URCORN
!00000015
187 constant urcorn
-*-
>
LLCORN
!00000015
200 constant llcorn
-*-
>
LRCORN
!00000015
188 constant lrcorn
-*-
>
HSIDE
!00000014
205 constant hside
-*-
>
VSIDE
!00000014
186 constant vside
-*-
>
WBOX
!00000197
: wbox
5 pick 5 pick 5 pick 5 pick 5 pick 0 scroll
5 pick 5 pick gotoxy ulcorn emit
3 pick 6 pick - 1- 0 do hside emit loop
urcorn emit
2 pick 5 pick - 1- 5 pick + 1+ 5 pick 1+
do
5 pick i gotoxy vside emit
3 pick i gotoxy vside emit
loop
5 pick 3 pick gotoxy llcorn emit
3 pick 6 pick - 1- 0 do hside emit loop
lrcorn emit
drop drop drop drop drop drop
;
-*-
^
>
SAVEAREA
!0000001C
create savearea 4000 allot
-*-
>
SAVEIT
!0000002A
: saveit
screen savearea 4000 move
;
-*-
>
RESTOREIT
!0000002D
: restoreit
savearea screen 4000 move
;
-*-
>
WINDOWDEMO
!000001B4
: windowdemo
saveit
windows
100 0 do
1 10 gotoxy
." Line " i .
." This window is window 1"
w1scrl
41 10 gotoxy
." Line " i .
." This window is window 2"
w2scrl
1 13 gotoxy
." Line " i .
." This is window 3 this is window 3 this is window 3 this is window 3"
w3scrl
?term if restoreit 0 23 gotoxy abort endif
loop
restoreit
0 23 gotoxy abort
;
-*-
^