home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Computer Club Elmshorn Atari PD
/
CCE_PD.iso
/
pc
/
0600
/
CCE_0648.ZIP
/
CCE_0648.PD
/
ZEST
/
NEXT_AP8.GFA
(
.txt
)
< prev
next >
Wrap
GFA-BASIC Atari
|
1989-08-07
|
51KB
|
2,399 lines
GOSUB init
> PROCEDURE init
rez#=XBIOS(4)
IF rez#<>2 THEN
ALERT 3,"| Monochrome only! ",1,"OK",ok%
ENDIF
OPTION BASE 1
slider1_x%=302
bsize%=1
cnt%=1
cfill%=14
' year%=1991
' month%=1
max%=500
DIM nms$(max%,12)
DIM temp$(max%,12)
DIM temp1$(12)
DIM v%(100)
r%=XBIOS(33,&X100)
' VOID BIOS(11,BIOS(11,-1) AND &HEF)
month%=VAL(MID$(DATE$,4,2))
year%=VAL(MID$(DATE$,7,4))
IF year%<1991 OR year%>1999 OR month%<1 OR month%>12 THEN
year%=1991
month%=1
ENDIF
IF EXIST("database.dat")=-1 THEN
OPEN "I",#1,"database.dat"
q%=1
r%=1
WHILE EOF(#1)=0
WHILE EOF(#1)=0 AND q%<13
INPUT #1,nms$(r%,q%)
INC q%
WEND
q%=1
INC r%
WEND
CLOSE #1
ENDIF
GOSUB next_logo
GOSUB size
GOSUB circ
GOSUB tri
GOSUB rect
colour%=1
SETCOLOR 0,7,7,7
CLS
DEFTEXT 1,0,0,13
DEFMOUSE 0
BOUNDARY 0
DEFFILL 1,2,4
PBOX 0,0,639,399
GOSUB draw_icons
RETURN
> PROCEDURE draw_icons
GOSUB cal_logo
GOSUB next_button(559,21,613,71)
PUT 568,29,cal$
GOSUB dbase_logo
GOSUB next_button(559,73,613,123)
PUT 566,81,dbase$
GOSUB type_logo
GOSUB next_button(559,125,613,175)
PUT 562,133,type$
GOSUB pencil_logo
GOSUB next_button(559,177,613,227)
PUT 566,182,pencil$
GOSUB x_logo
GOSUB next_button(559,330,613,380)
PUT 562,332,x$
GOSUB credit_box
GOSUB monitor_icons
RETURN
> PROCEDURE monitor_icons
DO
calendar_open%=0
dbase_open%=0
SELECT MOUSEK
CASE 1
mxx%=MOUSEX
myy%=MOUSEY
SELECT mxx%
CASE 560 TO 612
SELECT myy%
CASE 21 TO 69
' calendar
SGET putback$
GOSUB next_button_press(559,21,613,71)
GOSUB draw_calendar
SPUT putback$
return#=GRAF_SHRINKBOX(560,21,50,50,50,58,334,262)
CASE 74 TO 122
' database
SGET putback$
GOSUB next_button_press(559,73,613,123)
GOSUB draw_database
SPUT putback$
return#=GRAF_SHRINKBOX(560,73,50,50,40,50,460,340)
CASE 126 TO 174
' typewriter
SGET putback$
GOSUB next_button_press(559,125,613,175)
GOSUB draw_type
SPUT putback$
return#=GRAF_SHRINKBOX(560,125,50,50,10,260,620,100)
CASE 178 TO 226
' paint
SGET putback$
GOSUB next_button_press(559,177,613,227)
GOSUB draw_paint
SPUT putback$
return#=GRAF_SHRINKBOX(560,177,50,50,10,10,528,380)
CASE 331 TO 379
GOSUB next_button_press(559,330,613,380)
GOSUB confirm_exit
ENDSELECT
ENDSELECT
CASE 2
GOSUB credit_box
ENDSELECT
LOOP
RETURN
> PROCEDURE next_button(upper_x%,upper_y%,lower_x%,lower_y%)
DEFLINE 1,1
DEFFILL 0,2,8
PBOX upper_x%,upper_y%,lower_x%,lower_y%
DEFFILL 1,2,4
PBOX upper_x%+1,upper_y%+1,lower_x%,lower_y%
LINE upper_x%+1,lower_y%,lower_x%,lower_y%
LINE upper_x%,lower_y%+1,lower_x%,lower_y%+1
LINE lower_x%,upper_y%+1,lower_x%,lower_y%
LINE lower_x%+1,upper_y%,lower_x%+1,lower_y%+1
RETURN
> PROCEDURE next_button_press(upper_x%,upper_y%,lower_x%,lower_y%)
DEFLINE 1,1
GET upper_x%-1,upper_y%-1,lower_x%+1,lower_y%+1,button$
GET upper_x%+1,upper_y%+1,lower_x%-2,lower_y%-2,shift_button$
PUT upper_x%+2,upper_y%+2,shift_button$
LINE upper_x%,upper_y%,lower_x%,upper_y%
LINE upper_x%,upper_y%,upper_x%,lower_y%
COLOR 0
LINE upper_x%+1,lower_y%,lower_x%,lower_y%
LINE upper_x%,lower_y%+1,lower_x%,lower_y%+1
LINE lower_x%,upper_y%+1,lower_x%,lower_y%
LINE lower_x%+1,upper_y%,lower_x%+1,lower_y%+1
COLOR 1
DO
LOOP UNTIL MOUSEK=0
PAUSE 3
PUT upper_x%-1,upper_y%-1,button$
RETURN
> PROCEDURE next_info_box(upper_x%,upper_y%,lower_x%,lower_y%)
DEFLINE 1,1
DEFFILL 1,2,4
PBOX upper_x%,upper_y%,lower_x%,lower_y%
LINE upper_x%,upper_y%,lower_x%,upper_y%
LINE upper_x%,upper_y%+1,lower_x%,upper_y%+1
LINE upper_x%,upper_y%,upper_x%,lower_y%
LINE upper_x%+1,upper_y%,upper_x%+1,lower_y%
COLOR 0
LINE upper_x%+1,lower_y%,lower_x%,lower_y%
LINE upper_x%,lower_y%+1,lower_x%,lower_y%+1
LINE lower_x%,upper_y%+1,lower_x%,lower_y%
LINE lower_x%+1,upper_y%,lower_x%+1,lower_y%+1
COLOR 1
RETURN
> PROCEDURE next_text_box(upper_x%,upper_y%,lower_x%,lower_y%)
DEFLINE 1,1
DEFFILL 1,2,4
PBOX upper_x%,upper_y%,lower_x%,lower_y%
LINE upper_x%,upper_y%,lower_x%,upper_y%
LINE upper_x%,upper_y%+1,lower_x%,upper_y%+1
LINE upper_x%,upper_y%,upper_x%,lower_y%
LINE upper_x%+1,upper_y%,upper_x%+1,lower_y%
COLOR 0
LINE upper_x%+1,lower_y%,lower_x%,lower_y%
LINE upper_x%,lower_y%+1,lower_x%,lower_y%+1
LINE lower_x%,upper_y%+1,lower_x%,lower_y%
LINE lower_x%+1,upper_y%,lower_x%+1,lower_y%+1
COLOR 1
DEFFILL 0,2,8
PBOX upper_x%+2,upper_y%+2,lower_x%-2,lower_y%-2
RETURN
> PROCEDURE next_horiz_line(upper_x%,upper_y%,lower_x%,lower_y%)
DEFLINE 1,1
LINE upper_x%,upper_y%,lower_x%,lower_y%
COLOR 0
LINE upper_x%,upper_y%+1,lower_x%,lower_y%+1
COLOR 1
RETURN
> PROCEDURE next_vert_line(upper_x%,upper_y%,lower_x%,lower_y%)
DEFLINE 1,1
LINE upper_x%,upper_y%,lower_x%,lower_y%
COLOR 0
LINE upper_x%+1,upper_y%,lower_x%+1,lower_y%
COLOR 1
RETURN
> PROCEDURE next_line_box(upper_x%,upper_y%,lower_x%,lower_y%)
DEFLINE 1,1
COLOR 0
BOX upper_x%,upper_y%,lower_x%,lower_y%
COLOR 1
LINE upper_x%-1,upper_y%,upper_x%-1,lower_y%
LINE upper_x%+2,lower_y%-1,lower_x%-2,lower_y%-1
LINE lower_x%-1,upper_y%+2,lower_x%-1,lower_y%-2
LINE upper_x%-1,upper_y%-1,lower_x%,upper_y%-1
RETURN
> PROCEDURE next_window(upper_x%,upper_y%,lower_x%,lower_y%)
' title bar
GOSUB next_button(upper_x%,upper_y%,lower_x%,upper_y%+20)
' window area
GOSUB next_button(upper_x%,upper_y%+22,lower_x%,lower_y%)
' close button
GOSUB next_button(upper_x%+5,upper_y%+4,upper_x%+18,upper_y%+16)
RETURN
> PROCEDURE draw_paint
return#=GRAF_GROWBOX(560,177,50,50,10,10,528,380)
cmode%=0
DEFFILL 1,2,4
paint_open%=1
GOSUB next_window(10,10,538,390)
GOSUB next_text_box(128,38,528,380)
GET 200,100,220,120,eraser$
GOSUB next_button(17,38,67,82)
DEFTEXT 1,0,0,13
GRAPHMODE 2
TEXT 26,66,"Save"
GOSUB next_button(69,38,119,82)
TEXT 78,66,"Load"
GRAPHMODE 0
GOSUB next_button(17,84,67,128)
PUT 25,89,circ$
FILL 39,105
GOSUB next_button(69,84,119,128)
PUT 77,89,rect$
FILL 89,107
GOSUB next_button(17,130,67,174)
PUT 25,135,tri$
FILL 36,160
GOSUB next_button(69,130,119,174)
DEFLINE 1,1
LINE 93,140,93,164
LINE 94,140,94,164
GOSUB next_button(17,176,67,220)
PUT 27,182,size$
GOSUB next_button(69,176,119,220)
GRAPHMODE 2
TEXT 78,203,"Text"
GRAPHMODE 0
GOSUB next_button(17,222,67,266)
GRAPHMODE 2
TEXT 23,249,"Block"
GRAPHMODE 0
GOSUB next_button(69,222,119,266)
GRAPHMODE 2
TEXT 79,249,"Fill"
GRAPHMODE 0
GOSUB next_button(17,268,67,312)
GRAPHMODE 2
TEXT 23,295,"Erase"
GRAPHMODE 0
GOSUB next_button(69,268,119,312)
GOSUB next_text_box(77,275,110,304)
DEFFILL 1,2,cfill%
PBOX 79,277,109,303
GOSUB next_button(17,314,67,358)
GOSUB next_text_box(25,322,58,349)
GET 27,324,56,340,bb$
DEFTEXT 1,0,0,4
TEXT 30,346,"SIZE"
DEFTEXT 1,0,0,13
DEFFILL 1,2,8
PBOX 40,331,42,334
' PBOX 37,328,46,337
DEFFILL 1,2,4
GOSUB next_button(69,314,119,358)
GOSUB next_text_box(77,322,110,349)
DEFTEXT 1,0,0,4
TEXT 83,346,"MODE"
DEFTEXT 1,0,0,13
TEXT 90,338,"0"
GET 130,40,525,378,pback$
PUT 130,40,picture$
GOSUB paint_test
RETURN
> PROCEDURE erase_paint
DEFLINE 2,1
GET 130,40,525,378,picture$
GRAPHMODE 0
CLIP 130,40 TO 525,378
DO
LOOP UNTIL MOUSEK=0
HIDEM
DO
IF MOUSEX<127 THEN
SHOWM
IF MOUSEK=1 AND MOUSEX>17 AND MOUSEX<67 AND MOUSEY>268 AND MOUSEY<312 THEN
CLIP OFF
DEFLINE 1,1
GOSUB next_button_press(17,268,67,312)
DEFLINE 2,1
lef%=419
cd$="Erase screen?"
GOSUB confirm_delete
CLIP 130,40 TO 525,378
IF go_ahead%=0 THEN
PUT 130,40,pback$
GET 130,40,525,378,picture$
EXIT IF 1=1
ENDIF
ENDIF
ELSE
HIDEM
vx%=MOUSEX-10
vy%=MOUSEY-10
IF vx%<130 THEN
vx%=130
ENDIF
IF vy%<40 THEN
vy%=40
ENDIF
IF vx%>505 THEN
vx%=505
ENDIF
IF vy%>358 THEN
vy%=358
ENDIF
IF vx%<>hm% OR vy%<>hy% OR MOUSEK=1 THEN
hm%=vx%
hy%=vy%
PUT 130,40,picture$
IF MOUSEK=1 THEN
PUT hm%,hy%,eraser$
GET 130,40,525,378,picture$
ENDIF
BOX hm%,hy%,hm%+20,hy%+20
ENDIF
ENDIF
LOOP UNTIL MOUSEK=2
PUT 130,40,picture$
SHOWM
CLIP OFF
DEFLINE 1,1
RETURN
> PROCEDURE degas_save
FILESELECT DIR$(0)+"\*.*","",f1$
IF TRIM$(f1$)<>"" THEN
SGET putback2$
GET 130,40,525,378,picture$
CLS
PUT 130,40,picture$
SGET putback3$
SPUT putback2$
OPEN "O",#1,f1$
PRINT #1,CHR$(0);
PRINT #1;CHR$(rez#);
FOR x#=0 TO 15
c_num1#=XBIOS(7,x#,-1)
cnum#=c_num1# AND &H777
ch#=INT(cnum#/256)
c_l#=cnum#-(ch#*256)
PRINT #1;CHR$(ch#);CHR$(c_l#);
NEXT x#
PRINT #1,putback3$
FOR x#=0 TO 31
PRINT #1,CHR$(0);
NEXT x#
CLOSE #1
ENDIF
RETURN
> PROCEDURE degas_load
FILESELECT DIR$(0)+"\*.*","",f1$
IF TRIM$(f1$)<>"" THEN
SGET putback2$
CLS
BLOAD f1$,XBIOS(2)-34
SGET putback3$
DEFLINE 2,1
DO
vx1%=MOUSEX-197
vy1%=MOUSEY-169
IF vx1%<0 THEN
vx1%=0
ENDIF
IF vy1%<0 THEN
vy1%=0
ENDIF
IF vx1%>243 THEN
vx1%=243
ENDIF
IF vy1%>61 THEN
vy1%=61
ENDIF
IF vx1%<>mx% OR vy1%<>my% THEN
mx%=vx1%
my%=vy1%
SPUT putback3$
BOX mx%,my%,mx%+395,my%+338
ENDIF
LOOP UNTIL MOUSEK=1
DEFLINE 1,1
SPUT putback3$
GET mx%,my%,mx%+395,my%+338,picture$
SPUT putback2$
PUT 130,40,picture$
ENDIF
RETURN
PROCEDURE paint_test
colour%=1
DO
KEYTEST key#
IF key#=6.35699E+06 THEN
PUT 130,40,safety$
GET 130,40,525,378,picture$
ENDIF
SELECT MOUSEK
CASE 1
GET 130,40,525,378,safety$
mxx%=MOUSEX
myy%=MOUSEY
IF mxx%>129 AND mxx%<526 AND myy%>39 AND myy%<378 THEN
GOSUB paint_draw
ENDIF
IF mxx%>559 AND mxx%<613 AND myy%>20 AND myy%<226 THEN
GOSUB icon_test
mxx%=0
myy%=0
ENDIF
IF mxx%>15 AND mxx%<28 AND myy%>14 AND myy%<26 THEN
GOSUB next_button_press(15,14,28,26)
paint_open%=0
COLOR 1
GRAPHMODE 0
EXIT IF 1=1
ENDIF
SELECT mxx%
CASE 18 TO 66
SELECT myy%
CASE 39 TO 81
GOSUB next_button_press(17,38,67,82)
' save pic
' BSAVE f1$,XBIOS(2),32000
GOSUB degas_save
CASE 85 TO 127
' circle
GOSUB next_button_press(17,84,67,128)
GOSUB draw_circle
CASE 131 TO 173
' k lines
GOSUB next_button_press(17,130,67,174)
GOSUB k_line
CASE 177 TO 219
' colour change
GOSUB next_button_press(17,176,67,220)
IF colour%=1 THEN
COLOR 0
colour%=0
ELSE
COLOR 1
colour%=1
ENDIF
CASE 223 TO 265
' block
GOSUB next_button_press(17,222,67,266)
GOSUB block_copy
CASE 269 TO 311
' erase
GOSUB next_button_press(17,268,67,312)
GOSUB erase_paint
CASE 315 TO 357
' brush size
GOSUB next_button_press(17,314,67,358)
GOSUB brush_size
ENDSELECT
CASE 70 TO 118
SELECT myy%
CASE 39 TO 81
GOSUB next_button_press(69,38,119,82)
' load pic
GET 60,260,125,366,pbk$
GOSUB degas_load
GET 130,40,525,378,picture$
PUT 60,260,pbk$
CASE 85 TO 127
' box
GOSUB next_button_press(69,84,119,128)
GOSUB draw_box
CASE 131 TO 173
' line
GOSUB next_button_press(69,130,119,174)
GOSUB draw_line
CASE 177 TO 219
' text
GOSUB next_button_press(69,176,119,220)
GOSUB paint_text
CASE 223 TO 265
' fill
GOSUB next_button_press(69,222,119,266)
GOSUB fill_paint
CASE 269 TO 311
' choose fill
GOSUB next_button_press(69,268,119,312)
GOSUB choose_fill
CASE 315 TO 357
' mode
GOSUB next_button_press(69,314,119,358)
GOSUB choose_mode
ENDSELECT
ENDSELECT
ENDSELECT
LOOP
RETURN
> PROCEDURE brush_size
IF bsize%=1 THEN
DEFFILL 1,2,8
PBOX 37,328,46,337
DEFFILL 1,2,4
bsize%=3
ELSE
bsize%=1
DEFFILL 1,2,8
PUT 27,324,bb$
PBOX 40,331,42,334
DEFFILL 1,2,4
ENDIF
RETURN
> PROCEDURE choose_mode
INC cmode%
IF cmode%>4 THEN
cmode%=0
ENDIF
TEXT 90,338," "
TEXT 90,338,cmode%
DEFTEXT 1,0,0,13
RETURN
> PROCEDURE paint_text
GRAPHMODE cmode%
st$=""
CLIP 130,40 TO 525,378
HIDEM
GET 130,40,525,378,picture$
' mxx%=MOUSEX
' myy%=MOUSEY
keyprs%=0
DO
KEYTEST i|
' PRINT i|
SELECT i|
CASE 8
' backspace
IF LEN(st$)>0 THEN
st$=MID$(st$,1,LEN(st$)-1)
keyprs%=1
ENDIF
CASE 13
' return
CASE 27
' esc
st$=""
keyprs%=1
CASE 32 TO 126
IF LEN(st$)<72 THEN
st$=st$+CHR$(i|)
keyprs%=1
ENDIF
ENDSELECT
IF MOUSEX<>hm% OR MOUSEY<>hy% OR keyprs%=1 THEN
keyprs%=0
hm%=MOUSEX
hy%=MOUSEY
PUT 130,40,picture$
TEXT hm%,hy%,"|"+st$
ENDIF
LOOP UNTIL MOUSEK
IF MOUSEK=1 THEN
TEXT hm%,hy%," "+st$
ELSE
PUT 130,40,picture$
ENDIF
GET 130,40,525,378,picture$
DEFMOUSE 0
SHOWM
CLIP OFF
DO
LOOP UNTIL MOUSEK=0
GRAPHMODE 0
RETURN
> PROCEDURE choose_fill
INC cfill%
IF cfill%>24 THEN
cfill%=1
ENDIF
DEFFILL 1,2,cfill%
' PBOX 69,268,119,312
PBOX 79,277,109,303
' BOX 79,277,109,303
RETURN
> PROCEDURE fill_paint
CLIP 130,40 TO 525,378
DEFMOUSE 5
DO
LOOP UNTIL MOUSEK=0
DO
LOOP UNTIL MOUSEK
DEFFILL 1,2,cfill%
IF MOUSEK=1 THEN
FILL MOUSEX,MOUSEY
GET 130,40,525,378,picture$
ENDIF
DEFMOUSE 0
CLIP OFF
RETURN
> PROCEDURE draw_line
DEFLINE 1,bsize%
CLIP 130,40 TO 525,378
DEFMOUSE 5
GET 130,40,525,378,picture$
DO
LOOP UNTIL MOUSEK=0
DO
LOOP UNTIL MOUSEK=1
DO
LOOP UNTIL MOUSEK=0
mxx%=MOUSEX
myy%=MOUSEY
DO
IF MOUSEX<>hm% OR MOUSEY<>hy% THEN
hm%=MOUSEX
hy%=MOUSEY
PUT 130,40,picture$
LINE mxx%,myy%,hm%,hy%
ENDIF
LOOP UNTIL MOUSEK
IF MOUSEK=1 THEN
LINE mxx%,myy%,hm%,hy%
ELSE
PUT 130,40,picture$
ENDIF
GET 130,40,525,378,picture$
DEFMOUSE 0
CLIP OFF
DEFLINE 1,1
RETURN
> PROCEDURE block_copy
CLIP 130,40 TO 525,378
DEFMOUSE 5
GET 130,40,525,378,picture$
DO
LOOP UNTIL MOUSEK=0
DO
LOOP UNTIL MOUSEK
IF MOUSEK=1 THEN
mxx%=MOUSEX
myy%=MOUSEY
DEFLINE 2,1
DO
IF MOUSEX<>hm% OR MOUSEY<>hy% THEN
hm%=MOUSEX
hy%=MOUSEY
PUT 130,40,picture$
BOX mxx%,myy%,hm%,hy%
ENDIF
LOOP UNTIL MOUSEK=0
PUT 130,40,picture$
GET mxx%,myy%,hm%,hy%,block$
w%=mxx%-hm%
h%=myy%-hy%
wide%=INT(mxx%-hm%)/2
high%=INT(myy%-hy%)/2
ENDIF
DO
LOOP UNTIL MOUSEK=0
DEFMOUSE 4
DO
SHOWM
IF MOUSEX+wide%<>hm% OR MOUSEY+high%<>hy% THEN
hm%=MOUSEX+wide%
hy%=MOUSEY+high%
IF hm%>130 AND hm%-w%<525 AND hy%>40 AND hy%-h%<378 THEN
PUT 130,40,picture$
SELECT cmode%
CASE 0 TO 1
PUT hm%,hy%,block$
CASE 2
PUT hm%,hy%,block$,7
CASE 3
PUT hm%,hy%,block$,6
CASE 4
PUT hm%,hy%,block$,13
ENDSELECT
ENDIF
ENDIF
IF MOUSEK=1 THEN
GET 130,40,525,378,picture$
ENDIF
LOOP UNTIL MOUSEK=2
PUT 130,40,picture$
GET 130,40,525,378,picture$
DEFLINE 1,1
DEFMOUSE 0
CLIP OFF
GRAPHMODE 0
RETURN
> PROCEDURE k_line
DEFLINE 1,bsize%
CLIP 130,40 TO 525,378
DEFMOUSE 5
GET 130,40,525,378,picture$
DO
LOOP UNTIL MOUSEK=0
DO
LOOP UNTIL MOUSEK=1
DO
LOOP UNTIL MOUSEK=0
DO
mxx%=MOUSEX
myy%=MOUSEY
DO
IF MOUSEX<>hm% OR MOUSEY<>hy% THEN
hm%=MOUSEX
hy%=MOUSEY
PUT 130,40,picture$
LINE mxx%,myy%,hm%,hy%
ENDIF
LOOP UNTIL MOUSEK
IF MOUSEK=1 THEN
LINE mxx%,myy%,hm%,hy%
GET 130,40,525,378,picture$
ELSE
PUT 130,40,picture$
ENDIF
LOOP UNTIL MOUSEK=2
GET 130,40,525,378,picture$
DEFMOUSE 0
CLIP OFF
DEFLINE 1,1
RETURN
> PROCEDURE draw_box
DEFLINE 1,bsize%
CLIP 130,40 TO 525,378
DEFMOUSE 5
GET 130,40,525,378,picture$
DO
LOOP UNTIL MOUSEK=0
DO
LOOP UNTIL MOUSEK=1
DO
LOOP UNTIL MOUSEK=0
mxx%=MOUSEX
myy%=MOUSEY
DO
IF MOUSEX<>hm% OR MOUSEY<>hy% THEN
hm%=MOUSEX
hy%=MOUSEY
PUT 130,40,picture$
BOX mxx%,myy%,hm%,hy%
ENDIF
LOOP UNTIL MOUSEK
IF MOUSEK=1 THEN
BOX mxx%,myy%,hm%,hy%
ELSE
PUT 130,40,picture$
ENDIF
GET 130,40,525,378,picture$
DEFMOUSE 0
CLIP OFF
DEFLINE 1,1
RETURN
> PROCEDURE draw_circle
DEFLINE 1,bsize%
CLIP 130,40 TO 525,378
DEFMOUSE 5
GET 130,40,525,378,picture$
DO
LOOP UNTIL MOUSEK=0
DO
LOOP UNTIL MOUSEK=1
DO
LOOP UNTIL MOUSEK=0
mxx%=MOUSEX
myy%=MOUSEY
DO
IF MOUSEX-mxx%<>hm% OR MOUSEY-myy%<>hy% THEN
hm%=MOUSEX-mxx%
hy%=MOUSEY-myy%
PUT 130,40,picture$
ELLIPSE mxx%,myy%,hm%,hy%
ENDIF
LOOP UNTIL MOUSEK
IF MOUSEK=1 THEN
ELLIPSE mxx%,myy%,hm%,hy%
ELSE
PUT 130,40,picture$
ENDIF
GET 130,40,525,378,picture$
DEFMOUSE 0
CLIP OFF
DEFLINE 1,1
RETURN
PROCEDURE paint_draw
CLIP 130,40 TO 525,378
IF bsize%=1 THEN
DO
PLOT mxx%,myy%
mxx%=MOUSEX
myy%=MOUSEY
LOOP UNTIL MOUSEK=0
ELSE
DO
PLOT mxx%,myy%
PLOT mxx%+1,myy%
PLOT mxx%,myy%+1
PLOT mxx%+1,myy%+1
mxx%=MOUSEX
myy%=MOUSEY
LOOP UNTIL MOUSEK=0
ENDIF
GET 130,40,525,378,picture$
CLIP OFF
DEFLINE 1,1
RETURN
> PROCEDURE draw_type
return#=GRAF_GROWBOX(560,125,50,50,10,260,620,100)
type_open%=1
GOSUB next_window(10,260,630,360)
GOSUB next_text_box(20,290,620,310)
GET 21,291,619,309,back2$
GOSUB next_line_box(21,319,620,351)
GOSUB next_button(30,324,150,345)
GOSUB next_button(160,324,280,345)
GOSUB next_info_box(300,325,540,344)
GET 301,326,539,343,back1$
GOSUB next_button(302,327,352,342)
GOSUB next_vert_line(327,328,327,341)
GET 302,326,353,343,slider1$
GOSUB next_text_box(554,325,607,344)
DEFTEXT 1,0,0,13
GRAPHMODE 2
TEXT 55,340,"Form Feed"
TEXT 184,340,"Line Feed"
GRAPHMODE 0
TEXT 30,305,sti$+CHR$(95)
PUT 301,326,back1$
PUT slider1_x%,326,slider1$
psp%=INT(slider1_x%/2)-151
psp$=STR$(psp%)
IF LEN(psp$)=1 THEN
psp$=" "+psp$
ENDIF
TEXT 572,340,psp$
GOSUB test_type
RETURN
> PROCEDURE test_type
DO
kps$=INKEY$
IF kps$<>"" THEN
GOSUB type_entry
ENDIF
SELECT MOUSEK
CASE 1
mxx%=MOUSEX
myy%=MOUSEY
IF mxx%>559 AND mxx%<613 AND myy%>20 AND myy%<226 THEN
GOSUB icon_test
ENDIF
SELECT mxx%
CASE 16 TO 27
SELECT myy%
' close button
CASE 265 TO 275
GOSUB next_button_press(15,264,28,276)
type_open%=0
EXIT IF 1=1
ENDSELECT
CASE 31 TO 149
' formfeed
SELECT myy%
CASE 325 TO 344
GOSUB next_button_press(30,324,150,345)
IF GEMDOS(17) THEN
LPRINT CHR$(12)
ENDIF
ENDSELECT
CASE 161 TO 279
' linefeed
SELECT myy%
CASE 325 TO 344
GOSUB next_button_press(160,324,280,345)
IF GEMDOS(17) THEN
LPRINT " "
ENDIF
ENDSELECT
CASE 302 TO 539
' slider area
SELECT myy%
CASE 326 TO 343
GOSUB type_slider
ENDSELECT
ENDSELECT
ENDSELECT
LOOP
RETURN
> PROCEDURE type_entry
KEYPRESS ASC(kps$)
DO
KEYTEST i|
' PRINT i|
SELECT i|
CASE 8
' backspace
IF LEN(sti$)>0 THEN
sti$=MID$(sti$,1,LEN(sti$)-1)
TEXT 30,305,sti$+CHR$(95)+SPACE$(72-LEN(sti$))
ENDIF
CASE 13
' return
IF TRIM$(sti$)<>"" THEN
IF GEMDOS(17) THEN
LPRINT SPACE$(psp%);sti$
ENDIF
ELSE
GOSUB next_button_press(160,324,280,345)
IF GEMDOS(17) THEN
LPRINT " "
ENDIF
ENDIF
sti$=""
TEXT 30,305,sti$+CHR$(95)+SPACE$(72-LEN(sti$))
EXIT IF 1=1
CASE 27
' esc
sti$=""
TEXT 30,305,sti$+CHR$(95)+SPACE$(72-LEN(sti$))
EXIT IF 1=1
CASE 32 TO 126
IF LEN(sti$)<72 THEN
sti$=sti$+CHR$(i|)
TEXT 30,305,sti$+CHR$(95)
ENDIF
ENDSELECT
LOOP UNTIL MOUSEK
RETURN
> PROCEDURE type_slider
DEFTEXT 1,0,0,13
DO
SHOWM
xx%=MOUSEX-25
IF xx%<>slider1_x% AND xx%>301 AND xx%<489 THEN
slider1_x%=xx%
PUT 301,326,back1$
PUT slider1_x%,326,slider1$
psp%=INT(slider1_x%/2)-151
psp$=STR$(psp%)
IF LEN(psp$)=1 THEN
psp$=" "+psp$
ENDIF
TEXT 572,340,psp$
ENDIF
LOOP UNTIL MOUSEK=0
RETURN
> PROCEDURE draw_calendar
return#=GRAF_GROWBOX(560,21,50,50,50,58,334,262)
calendar_open%=1
GOSUB next_window(50,58,384,320)
GOSUB next_text_box(130,90,338,110)
GOSUB next_button(60,120,90,200)
GOSUB next_button(60,202,90,279)
GOSUB next_button(101,291,235,310)
GOSUB next_button(237,291,370,310)
GRAPHMODE 2
DEFTEXT 1,0,0,13
TEXT 71,164,CHR$(174)
TEXT 73,244,CHR$(175)
TEXT 163,307,"<"
TEXT 307,307,">"
GRAPHMODE 0
FOR v%=120 TO 268 STEP 28
FOR t%=100 TO 340 STEP 40
GOSUB next_text_box(t%,v%,t%+30,v%+20)
NEXT t%
NEXT v%
GET 95,80,376,287,blank1$
GOSUB fill_calendar
GOSUB test_calendar
RETURN
> PROCEDURE fill_calendar
SELECT month%
CASE 1
month$="January"
days%=31
SELECT year%
CASE 1991
start%=3
CASE 1992
start%=4
CASE 1993
start%=6
CASE 1994
start%=7
CASE 1995
start%=1
CASE 1996
start%=2
CASE 1997
start%=4
CASE 1998
start%=5
CASE 1999
start%=6
ENDSELECT
CASE 2
month$="February"
days%=28
SELECT year%
CASE 1991
start%=6
CASE 1992
days%=29
start%=7
CASE 1993
start%=2
CASE 1994
start%=3
CASE 1995
start%=4
CASE 1996
days%=28
start%=5
CASE 1997
start%=7
CASE 1998
start%=1
CASE 1999
start%=2
ENDSELECT
CASE 3
month$="March"
days%=31
SELECT year%
CASE 1991
start%=6
CASE 1992
start%=1
CASE 1993
start%=2
CASE 1994
start%=3
CASE 1995
start%=4
CASE 1996
start%=6
CASE 1997
start%=7
CASE 1998
start%=1
CASE 1999
start%=2
ENDSELECT
CASE 4
month$="April"
days%=30
SELECT year%
CASE 1991
start%=2
CASE 1992
start%=4
CASE 1993
start%=5
CASE 1994
start%=6
CASE 1995
start%=7
CASE 1996
start%=2
CASE 1997
start%=3
CASE 1998
start%=4
CASE 1999
start%=5
ENDSELECT
CASE 5
month$="May"
days%=31
SELECT year%
CASE 1991
start%=4
CASE 1992
start%=6
CASE 1993
start%=7
CASE 1994
start%=1
CASE 1995
start%=2
CASE 1996
start%=4
CASE 1997
start%=5
CASE 1998
start%=6
CASE 1999
start%=7
ENDSELECT
CASE 6
month$="June"
days%=30
SELECT year%
CASE 1991
start%=7
CASE 1992
start%=2
CASE 1993
start%=3
CASE 1994
start%=4
CASE 1995
start%=5
CASE 1996
start%=7
CASE 1997
start%=1
CASE 1998
start%=2
CASE 1999
start%=3
ENDSELECT
CASE 7
month$="July"
days%=31
SELECT year%
CASE 1991
start%=2
CASE 1992
start%=4
CASE 1993
start%=5
CASE 1994
start%=6
CASE 1995
start%=7
CASE 1996
start%=2
CASE 1997
start%=3
CASE 1998
start%=4
CASE 1999
start%=5
ENDSELECT
CASE 8
month$="August"
days%=31
SELECT year%
CASE 1991
start%=5
CASE 1992
start%=7
CASE 1993
start%=1
CASE 1994
start%=2
CASE 1995
start%=3
CASE 1996
start%=5
CASE 1997
start%=6
CASE 1998
start%=7
CASE 1999
start%=1
ENDSELECT
CASE 9
month$="September"
days%=30
SELECT year%
CASE 1991
start%=1
CASE 1992
start%=3
CASE 1993
start%=4
CASE 1994
start%=5
CASE 1995
start%=6
CASE 1996
start%=1
CASE 1997
start%=2
CASE 1998
start%=3
CASE 1999
start%=4
ENDSELECT
CASE 10
month$="October"
days%=31
SELECT year%
CASE 1991
start%=3
CASE 1992
start%=5
CASE 1993
start%=6
CASE 1994
start%=7
CASE 1995
start%=1
CASE 1996
start%=3
CASE 1997
start%=4
CASE 1998
start%=5
CASE 1999
start%=6
ENDSELECT
CASE 11
month$="November"
days%=30
SELECT year%
CASE 1991
start%=6
CASE 1992
start%=1
CASE 1993
start%=2
CASE 1994
start%=3
CASE 1995
start%=4
CASE 1996
start%=6
CASE 1997
start%=7
CASE 1998
start%=1
CASE 1999
start%=2
ENDSELECT
CASE 12
month$="December"
days%=31
SELECT year%
CASE 1991
start%=1
CASE 1992
start%=3
CASE 1993
start%=4
CASE 1994
start%=5
CASE 1995
start%=6
CASE 1996
start%=1
CASE 1997
start%=2
CASE 1998
start%=3
CASE 1999
start%=4
ENDSELECT
ENDSELECT
PUT 95,80,blank1$
d%=0
t%=start%-1
title$=month$+", "+STR$(year%)
g$=SPACE$(INT(24-LEN(title$))/2)
TEXT 140,105,g$+title$
FOR z%=1 TO days%
INC d%
INC t%
d$=STR$(d%)
IF LEN(d$)=1 THEN
d$=" "+d$
ENDIF
SELECT t%
CASE 1
TEXT 107,136,d$
CASE 2
TEXT 147,136,d$
CASE 3
TEXT 187,136,d$
CASE 4
TEXT 227,136,d$
CASE 5
TEXT 267,136,d$
CASE 6
TEXT 307,136,d$
CASE 7
TEXT 347,136,d$
CASE 8
TEXT 107,164,d$
CASE 9
TEXT 147,164,d$
CASE 10
TEXT 187,164,d$
CASE 11
TEXT 227,164,d$
CASE 12
TEXT 267,164,d$
CASE 13
TEXT 307,164,d$
CASE 14
TEXT 347,164,d$
CASE 15
TEXT 107,192,d$
CASE 16
TEXT 147,192,d$
CASE 17
TEXT 187,192,d$
CASE 18
TEXT 227,192,d$
CASE 19
TEXT 267,192,d$
CASE 20
TEXT 307,192,d$
CASE 21
TEXT 347,192,d$
CASE 22
TEXT 107,220,d$
CASE 23
TEXT 147,220,d$
CASE 24
TEXT 187,220,d$
CASE 25
TEXT 227,220,d$
CASE 26
TEXT 267,220,d$
CASE 27
TEXT 307,220,d$
CASE 28
TEXT 347,220,d$
CASE 29
TEXT 107,248,d$
CASE 30
TEXT 147,248,d$
CASE 31
TEXT 187,248,d$
CASE 32
TEXT 227,248,d$
CASE 33
TEXT 267,248,d$
CASE 34
TEXT 307,248,d$
CASE 35
TEXT 347,248,d$
CASE 36
TEXT 107,276,d$
CASE 37
TEXT 147,276,d$
CASE 38
TEXT 187,276,d$
CASE 39
TEXT 227,276,d$
CASE 40
TEXT 267,276,d$
CASE 41
TEXT 307,276,d$
CASE 42
TEXT 347,276,d$
ENDSELECT
NEXT z%
RETURN
> PROCEDURE test_calendar
DO
SELECT MOUSEK
CASE 1
mxx%=MOUSEX
myy%=MOUSEY
IF mxx%>559 AND mxx%<613 AND myy%>20 AND myy%<226 THEN
GOSUB icon_test
ENDIF
SELECT mxx%
CASE 56 TO 67
SELECT myy%
CASE 63 TO 73
GOSUB next_button_press(55,62,68,74)
calendar_open%=0
EXIT IF 1=1
ENDSELECT
CASE 61 TO 89
SELECT myy%
CASE 121 TO 199
GOSUB next_button_press(60,120,90,200)
IF month%>1 THEN
DEC month%
GOSUB fill_calendar
ENDIF
CASE 203 TO 278
GOSUB next_button_press(60,202,90,279)
IF month%<12 THEN
INC month%
GOSUB fill_calendar
ENDIF
ENDSELECT
CASE 102 TO 234
SELECT myy%
CASE 292 TO 309
GOSUB next_button_press(101,291,235,310)
IF year%>1991 THEN
DEC year%
GOSUB fill_calendar
ENDIF
ENDSELECT
CASE 238 TO 369
SELECT myy%
CASE 292 TO 309
GOSUB next_button_press(237,291,370,310)
IF year%<1999 THEN
INC year%
GOSUB fill_calendar
ENDIF
ENDSELECT
ENDSELECT
ENDSELECT
LOOP
RETURN
> PROCEDURE draw_database
return#=GRAF_GROWBOX(560,73,50,50,40,50,460,340)
changed%=0
dbase_open%=1
GOSUB next_window(40,50,500,390)
GOSUB next_text_box(139,91,485,302)
GET 142,94,482,299,bg$
GOSUB next_button(55,311,123,336)
GOSUB next_button(139,316,306,336)
GOSUB next_button(308,316,485,336)
GOSUB next_info_box(55,345,485,380)
GOSUB next_button(70,351,195,374)
GOSUB next_button(207,351,332,374)
GOSUB next_button(345,351,470,374)
a%=55
b%=75
' -------
c%=90
d%=110
FOR t%=1 TO 8
FOR z%=1 TO 3
GOSUB next_button(a%,c%,b%,d%)
a%=b%+4
b%=a%+20
NEXT z%
a%=55
b%=75
c%=d%+4
d%=c%+20
NEXT t%
FOR z%=1 TO 2
GOSUB next_button(a%,c%,b%,d%)
a%=b%+4
b%=a%+20
NEXT z%
DEFTEXT 1,0,0,13
GRAPHMODE 2
TEXT 216,332,"<"
TEXT 396,332,">"
TEXT 69,329,"Print"
TEXT 122,368,"Add"
TEXT 254,368,"Edit"
TEXT 384,368,"Delete"
TEXT 61,106,"A B C"
TEXT 61,130,"D E F"
TEXT 61,154,"G H I"
TEXT 61,178,"J K L"
TEXT 61,202,"M N O"
TEXT 61,226,"P Q R"
TEXT 61,250,"S T U"
TEXT 61,274,"V W X"
TEXT 61,298,"Y Z"
GRAPHMODE 0
GOSUB database_view
GOSUB test_database
RETURN
> PROCEDURE test_database
DO
SELECT MOUSEK
CASE 1
mxx%=MOUSEX
myy%=MOUSEY
IF mxx%>559 AND mxx%<613 AND myy%>20 AND myy%<226 THEN
GOSUB icon_test
ENDIF
SELECT myy%
CASE 21 TO 69
SELECT mxx%
CASE 46 TO 57
' close button
IF myy%>55 AND myy%<66 THEN
GOSUB next_button_press(45,54,58,66)
dbase_open%=0
IF changed%=1 AND TRIM$(nms$(1,1))<>"" THEN
GOSUB database_sort
OPEN "O",#1,"database.dat"
FOR r%=1 TO cint%
FOR q%=1 TO 12
WRITE #1,nms$(r%,q%)
NEXT q%
NEXT r%
CLOSE #1
ENDIF
EXIT IF 1=1
ENDIF
ENDSELECT
CASE 91 TO 109
' abc
SELECT mxx%
CASE 56 TO 74
GOSUB next_button_press(55,90,75,110)
alpha$="a"
GOSUB letter_search
CASE 80 TO 98
GOSUB next_button_press(79,90,99,110)
alpha$="b"
GOSUB letter_search
CASE 104 TO 122
GOSUB next_button_press(103,90,123,110)
alpha$="c"
GOSUB letter_search
ENDSELECT
CASE 115 TO 133
' def
SELECT mxx%
CASE 56 TO 74
GOSUB next_button_press(55,114,75,134)
alpha$="d"
GOSUB letter_search
CASE 80 TO 98
GOSUB next_button_press(79,114,99,134)
alpha$="e"
GOSUB letter_search
CASE 104 TO 122
GOSUB next_button_press(103,114,123,134)
alpha$="f"
GOSUB letter_search
ENDSELECT
CASE 139 TO 157
' ghi
SELECT mxx%
CASE 56 TO 74
GOSUB next_button_press(55,138,75,158)
alpha$="g"
GOSUB letter_search
CASE 80 TO 98
GOSUB next_button_press(79,138,99,158)
alpha$="h"
GOSUB letter_search
CASE 104 TO 122
GOSUB next_button_press(103,138,123,158)
alpha$="i"
GOSUB letter_search
ENDSELECT
CASE 163 TO 181
' jkl
SELECT mxx%
CASE 56 TO 74
GOSUB next_button_press(55,162,75,182)
alpha$="j"
GOSUB letter_search
CASE 80 TO 98
GOSUB next_button_press(79,162,99,182)
alpha$="k"
GOSUB letter_search
CASE 104 TO 122
GOSUB next_button_press(103,162,123,182)
alpha$="l"
GOSUB letter_search
ENDSELECT
CASE 187 TO 205
' mno
SELECT mxx%
CASE 56 TO 74
GOSUB next_button_press(55,186,75,206)
alpha$="m"
GOSUB letter_search
CASE 80 TO 98
GOSUB next_button_press(79,186,99,206)
alpha$="n"
GOSUB letter_search
CASE 104 TO 122
GOSUB next_button_press(103,186,123,206)
alpha$="o"
GOSUB letter_search
ENDSELECT
CASE 211 TO 229
' pqr
SELECT mxx%
CASE 56 TO 74
GOSUB next_button_press(55,210,75,230)
alpha$="p"
GOSUB letter_search
CASE 80 TO 98
GOSUB next_button_press(79,210,99,230)
alpha$="q"
GOSUB letter_search
CASE 104 TO 122
GOSUB next_button_press(103,210,123,230)
alpha$="r"
GOSUB letter_search
ENDSELECT
CASE 235 TO 253
' stu
SELECT mxx%
CASE 56 TO 74
GOSUB next_button_press(55,234,75,254)
alpha$="s"
GOSUB letter_search
CASE 80 TO 98
GOSUB next_button_press(79,234,99,254)
alpha$="t"
GOSUB letter_search
CASE 104 TO 122
GOSUB next_button_press(103,234,123,254)
alpha$="u"
GOSUB letter_search
ENDSELECT
CASE 259 TO 277
' vwx
SELECT mxx%
CASE 56 TO 74
GOSUB next_button_press(55,258,75,278)
alpha$="v"
GOSUB letter_search
CASE 80 TO 98
GOSUB next_button_press(79,258,99,278)
alpha$="w"
GOSUB letter_search
CASE 104 TO 122
GOSUB next_button_press(103,258,123,278)
alpha$="x"
GOSUB letter_search
ENDSELECT
CASE 283 TO 301
' yz
SELECT mxx%
CASE 56 TO 74
GOSUB next_button_press(55,282,75,302)
alpha$="y"
GOSUB letter_search
CASE 80 TO 98
GOSUB next_button_press(79,282,99,302)
alpha$="z"
GOSUB letter_search
ENDSELECT
CASE 317 TO 335
' arrow buttons
SELECT mxx%
CASE 56 TO 122
GOSUB next_button_press(55,311,123,336)
IF GEMDOS(17) AND TRIM$(nms$(cnt%,1))<>"" THEN
FOR ut%=1 TO 12
LPRINT nms$(cnt%,ut%)
NEXT ut%
ENDIF
CASE 140 TO 305
GOSUB next_button_press(139,316,306,336)
IF cnt%>1 THEN
DEC cnt%
GOSUB database_view
ENDIF
CASE 309 TO 484
GOSUB next_button_press(308,316,485,336)
IF TRIM$(nms$(cnt%+1,1))<>"" THEN
INC cnt%
GOSUB database_view
ENDIF
ENDSELECT
CASE 352 TO 373
SELECT mxx%
CASE 71 TO 194
' add
GOSUB next_button_press(70,351,195,374)
GOSUB database_entry
CASE 208 TO 331
' edit
GOSUB next_button_press(207,351,332,374)
IF TRIM$(nms$(cnt%,1))<>"" THEN
GOSUB database_edit
ENDIF
CASE 346 TO 469
' delete
GOSUB next_button_press(345,351,470,374)
IF TRIM$(nms$(cnt%,1))<>"" THEN
lef%=448
cd$="Erase?"
GOSUB confirm_delete
IF go_ahead%=0 THEN
GOSUB database_delete
ENDIF
ENDIF
ENDSELECT
ENDSELECT
ENDSELECT
LOOP
RETURN
> PROCEDURE confirm_delete
GET 385,175,555,295,cover$
GOSUB next_button(390,178,550,290)
GOSUB next_info_box(400,188,540,280)
GOSUB next_button(410,230,469,270)
GOSUB next_button(471,230,530,270)
GOSUB next_text_box(412,197,527,217)
DEFTEXT 1,0,0,13
GRAPHMODE 2
' TEXT 443,213,"Delete?"
TEXT lef%,213,cd$
TEXT 427,255,"Yes"
TEXT 492,255,"No"
GRAPHMODE 0
DO
IF MOUSEK=1 AND MOUSEX>410 AND MOUSEX<469 AND MOUSEY>230 AND MOUSEY<270 THEN
GOSUB next_button_press(410,230,469,270)
go_ahead%=0
EXIT IF 1=1
ENDIF
IF MOUSEK=1 AND MOUSEX>471 AND MOUSEX<530 AND MOUSEY>230 AND MOUSEY<270 THEN
GOSUB next_button_press(471,230,530,270)
go_ahead%=1
EXIT IF 1=1
ENDIF
LOOP
PUT 385,175,cover$
RETURN
> PROCEDURE confirm_exit
GET 35,25,255,145,cover$
GOSUB next_button(40,28,200,140)
GOSUB next_info_box(50,38,190,130)
GOSUB next_button(60,80,119,120)
GOSUB next_button(121,80,180,120)
GOSUB next_text_box(62,47,177,67)
DEFTEXT 1,0,0,13
GRAPHMODE 2
TEXT 93,63," Exit?"
TEXT 77,105,"Yes"
TEXT 142,105,"No"
GRAPHMODE 0
DO
IF MOUSEK=1 AND MOUSEX>60 AND MOUSEX<119 AND MOUSEY>80 AND MOUSEY<120 THEN
GOSUB next_button_press(60,80,119,120)
END
ENDIF
IF MOUSEK=1 AND MOUSEX>121 AND MOUSEX<180 AND MOUSEY>80 AND MOUSEY<120 THEN
GOSUB next_button_press(121,80,180,120)
EXIT IF 1=1
ENDIF
LOOP
PUT 35,25,cover$
RETURN
> PROCEDURE database_entry
FOR n%=1 TO max%
EXIT IF TRIM$(nms$(n%,1))=""
NEXT n%
PUT 142,94,bg$
DO
PRINT AT(20,8);
FORM INPUT 39,nms$(n%,1)
EXIT IF TRIM$(nms$(n%,1))=""
PRINT AT(20,9);
FORM INPUT 39,nms$(n%,2)
EXIT IF TRIM$(nms$(n%,2))=""
PRINT AT(20,10);
FORM INPUT 39,nms$(n%,3)
EXIT IF TRIM$(nms$(n%,3))=""
PRINT AT(20,11);
FORM INPUT 39,nms$(n%,4)
EXIT IF TRIM$(nms$(n%,4))=""
PRINT AT(20,12);
FORM INPUT 39,nms$(n%,5)
EXIT IF TRIM$(nms$(n%,5))=""
PRINT AT(20,13);
FORM INPUT 39,nms$(n%,6)
EXIT IF TRIM$(nms$(n%,6))=""
PRINT AT(20,14);
FORM INPUT 39,nms$(n%,7)
EXIT IF TRIM$(nms$(n%,7))=""
PRINT AT(20,15);
FORM INPUT 39,nms$(n%,8)
EXIT IF TRIM$(nms$(n%,8))=""
PRINT AT(20,16);
FORM INPUT 39,nms$(n%,9)
EXIT IF TRIM$(nms$(n%,9))=""
PRINT AT(20,17);
FORM INPUT 39,nms$(n%,10)
EXIT IF TRIM$(nms$(n%,10))=""
PRINT AT(20,18);
FORM INPUT 39,nms$(n%,11)
EXIT IF 1=1
LOOP
IF TRIM$(nms$(n%,1))<>"" THEN
srtd%=1
changed%=1
find_again$=nms$(n%,1)
cnt%=n%
ELSE
GOSUB database_view
ENDIF
RETURN
> PROCEDURE database_delete
srtd%=1
changed%=1
nms$(cnt%,1)=CHR$(240)
FOR de%=2 TO 12
nms$(cnt%,de%)=""
NEXT de%
GOSUB database_sort
nms$(cint%,1)=""
IF cnt%>1 THEN
DEC cnt%
ENDIF
GOSUB database_view
RETURN
> PROCEDURE database_sort
FOR n%=1 TO max%
EXIT IF TRIM$(nms$(n%,1))=""
NEXT n%
IF n%>1 THEN
cint%=n%-1
FOR g%=1 TO cint%
temp1$(g%)=nms$(g%,1)
v%(g%)=g%
FOR pl%=2 TO 12
temp$(g%,pl%)=nms$(g%,pl%)
NEXT pl%
NEXT g%
SSORT temp1$(),cint%,v%()
FOR g%=1 TO cint%
nms$(g%,1)=temp1$(g%)
FOR pl%=2 TO 12
nms$(g%,pl%)=temp$(v%(g%),pl%)
NEXT pl%
NEXT g%
ENDIF
RETURN
> PROCEDURE database_edit
srtd%=1
changed%=1
n%=cnt%
DO
rep$=nms$(n%,1)
oks%=0
DO
PRINT AT(20,8);
FORM INPUT 39 AS nms$(n%,1)
IF TRIM$(nms$(n%,1))="" THEN
nms$(n%,1)=rep$
ELSE
oks%=1
ENDIF
LOOP UNTIL oks%=1
PRINT AT(20,9);
FORM INPUT 39 AS nms$(n%,2)
EXIT IF TRIM$(nms$(n%,2))=""
PRINT AT(20,10);
FORM INPUT 39 AS nms$(n%,3)
EXIT IF TRIM$(nms$(n%,3))=""
PRINT AT(20,11);
FORM INPUT 39 AS nms$(n%,4)
EXIT IF TRIM$(nms$(n%,4))=""
PRINT AT(20,12);
FORM INPUT 39 AS nms$(n%,5)
EXIT IF TRIM$(nms$(n%,5))=""
PRINT AT(20,13);
FORM INPUT 39 AS nms$(n%,6)
EXIT IF TRIM$(nms$(n%,6))=""
PRINT AT(20,14);
FORM INPUT 39 AS nms$(n%,7)
EXIT IF TRIM$(nms$(n%,7))=""
PRINT AT(20,15);
FORM INPUT 39 AS nms$(n%,8)
EXIT IF TRIM$(nms$(n%,8))=""
PRINT AT(20,16);
FORM INPUT 39 AS nms$(n%,9)
EXIT IF TRIM$(nms$(n%,9))=""
PRINT AT(20,17);
FORM INPUT 39 AS nms$(n%,10)
EXIT IF TRIM$(nms$(n%,10))=""
PRINT AT(20,18);
FORM INPUT 39 AS nms$(n%,11)
EXIT IF 1=1
LOOP
RETURN
> PROCEDURE database_view
PUT 142,94,bg$
PRINT AT(20,8);nms$(cnt%,1)
PRINT AT(20,9);nms$(cnt%,2)
PRINT AT(20,10);nms$(cnt%,3)
PRINT AT(20,11);nms$(cnt%,4)
PRINT AT(20,12);nms$(cnt%,5)
PRINT AT(20,13);nms$(cnt%,6)
PRINT AT(20,14);nms$(cnt%,7)
PRINT AT(20,15);nms$(cnt%,8)
PRINT AT(20,16);nms$(cnt%,9)
PRINT AT(20,17);nms$(cnt%,10)
PRINT AT(20,18);nms$(cnt%,11)
RETURN
> PROCEDURE letter_search
sorted%=0
IF srtd%=1 THEN
GOSUB database_sort
srtd%=0
sorted%=1
ENDIF
FOR n%=1 TO max%
EXIT IF TRIM$(nms$(n%,1))=""
NEXT n%
itis%=0
FOR e%=1 TO n%
IF alpha$=LEFT$(nms$(e%,1)) OR UPPER$(alpha$)=LEFT$(nms$(e%,1)) THEN
itis%=e%
EXIT IF 1=1
ENDIF
NEXT e%
IF itis%=0 THEN
IF sorted%=1 THEN
cnt%=1
ENDIF
ELSE
cnt%=itis%
GOSUB database_view
ENDIF
RETURN
> PROCEDURE icon_test
SELECT mxx%
CASE 560 TO 612
SELECT myy%
CASE 21 TO 69
' calendar
GOSUB next_button_press(559,21,613,71)
IF calendar_open%=0 THEN
SGET putback2$
GOSUB draw_calendar
SPUT putback2$
return#=GRAF_SHRINKBOX(560,21,50,50,50,58,334,262)
ENDIF
CASE 74 TO 122
' database
GOSUB next_button_press(559,73,613,123)
IF dbase_open%=0 THEN
SGET putback3$
GOSUB draw_database
SPUT putback3$
return#=GRAF_SHRINKBOX(560,73,50,50,40,50,460,340)
ENDIF
CASE 126 TO 174
' typewriter
GOSUB next_button_press(559,125,613,175)
IF type_open%=0 THEN
SGET putback4$
GOSUB draw_type
SPUT putback4$
return#=GRAF_SHRINKBOX(560,125,50,50,10,260,620,100)
ENDIF
CASE 178 TO 226
' paint
GOSUB next_button_press(559,177,613,227)
IF paint_open%=0 THEN
SGET putback5$
GOSUB draw_paint
SPUT putback5$
return#=GRAF_SHRINKBOX(560,177,50,50,10,10,528,380)
ENDIF
ENDSELECT
ENDSELECT
DO
LOOP UNTIL MOUSEK=0
mxx%=0
myy%=0
RETURN
> PROCEDURE cal_logo
cal$=""
RESTORE cal
REPEAT
READ x#
cal$=cal$+CHR$(x#)
UNTIL x#=-1
' Sprite Data For CAL$
cal:
DATA 0,35,0,32,0,1,85,85,85,85,88
DATA 0,170,170,170,170,160,0,85,85,85,85
DATA 88,0,171,174,186,234,160,0,86,219,109
DATA 181,88,0,175,255,255,255,160,0,90,73
DATA 36,145,216,0,169,36,146,73,160,0,88
DATA 0,0,1,216,0,168,0,0,1,160,0
DATA 95,255,255,255,216,0,169,36,146,73,160
DATA 0,89,36,146,73,216,0,175,255,255,255
DATA 160,0,89,36,146,73,216,0,169,36,146
DATA 73,160,0,95,255,255,255,216,0,169,36
DATA 146,73,160,0,89,36,146,73,216,0,175
DATA 255,255,255,160,0,89,36,146,73,216,0
DATA 169,36,146,73,160,0,95,255,255,255,216
DATA 0,169,36,146,73,160,0,89,36,146,73
DATA 216,0,175,255,255,255,160,0,89,36,146
DATA 73,216,0,169,36,146,73,160,0,95,255
DATA 255,255,216,0,175,255,255,255,160,0,85
DATA 85,85,85,88,0,170,170,170,170,160,0
DATA 85,85,85,85,88,0,-1
' To Display Sprite
' Put X,Y,CAL$ -Whereas X= X Coordinate Y= Y Coordinate
RETURN
> PROCEDURE pencil_logo
pencil$=""
RESTORE pencil
REPEAT
READ x#
pencil$=pencil$+CHR$(x#)
UNTIL x#=-1
' Sprite Data For PENCIL$
pencil:
DATA 0,42,0,41,0,1,170,170,170,170,170
DATA 160,85,85,85,85,85,64,170,170,170,170
DATA 170,160,85,85,85,85,85,64,171,250,170
DATA 170,170,160,87,253,85,85,85,64,175,254
DATA 170,170,170,160,87,253,85,85,85,64,175
DATA 251,170,170,170,160,87,247,85,85,85,64
DATA 175,238,170,170,170,160,87,220,117,85,85
DATA 64,171,184,234,170,170,160,85,113,221,85
DATA 85,64,170,227,158,170,170,160,85,87,79
DATA 85,85,64,170,174,231,170,170,160,85,92
DATA 115,213,85,64,170,171,57,234,170,160,85
DATA 87,156,245,85,64,170,171,206,122,170,160
DATA 85,85,231,61,85,64,170,170,243,158,170
DATA 160,85,85,121,207,85,64,170,170,188,231
DATA 170,160,85,85,94,115,213,64,170,170,175
DATA 57,234,160,85,85,87,157,213,64,170,170
DATA 171,206,106,160,85,85,85,230,117,64,170
DATA 170,170,248,106,160,85,85,85,120,53,64
DATA 170,170,170,191,122,160,85,85,85,87,253
DATA 64,170,170,170,170,250,160,85,85,85,85
DATA 125,64,170,170,170,170,174,160,85,85,85
DATA 85,85,64,170,170,170,170,170,160,85,85
DATA 85,85,85,64,170,170,170,170,170,160,85
DATA 85,85,85,85,64,-1
' To Display Sprite
' Put X,Y,PENCIL$ -Whereas X= X Coordinate Y= Y Coordinate
RETURN
> PROCEDURE x_logo
x$=""
RESTORE x
REPEAT
READ x#
x$=x$+CHR$(x#)
UNTIL x#=-1
' Sprite Data For X$
x:
DATA 0,47,0,44,0,1,170,170,170,170,170
DATA 170,85,85,85,85,85,85,170,170,170,170
DATA 170,170,85,85,85,85,85,85,170,170,170
DATA 170,170,186,87,85,85,85,85,245,171,170
DATA 170,170,171,250,87,245,85,85,95,181,171
DATA 250,170,170,190,58,87,255,85,85,248,53
DATA 171,255,170,171,224,58,87,255,245,95,128
DATA 53,171,255,250,190,0,58,87,255,255,248
DATA 0,53,171,255,255,224,0,58,87,255,255
DATA 224,0,53,171,255,254,248,0,58,87,255
DATA 248,254,0,53,171,255,224,255,128,58,87
DATA 255,128,255,224,53,171,254,0,255,248,58
DATA 85,248,0,255,254,245,171,224,0,255,255
DATA 234,87,128,0,255,255,213,174,0,0,255
DATA 255,250,92,0,0,255,255,245,172,0,0
DATA 255,255,250,92,0,0,255,255,245,172,0
DATA 0,255,255,250,92,0,0,255,255,245,172
DATA 0,3,255,255,250,92,0,15,255,255,245
DATA 172,0,62,191,255,250,92,0,253,95,255
DATA 245,172,3,234,171,255,250,92,15,213,85
DATA 255,245,172,62,170,170,191,250,92,253,85
DATA 85,95,245,175,234,170,170,171,250,95,213
DATA 85,85,85,245,174,170,170,170,170,186,93
DATA 85,85,85,85,85,170,170,170,170,170,170
DATA 85,85,85,85,85,85,170,170,170,170,170
DATA 170,-1
' To Display Sprite
' Put X,Y,X$ -Whereas X= X Coordinate Y= Y Coordinate
RETURN
> PROCEDURE type_logo
type$=""
RESTORE type
REPEAT
READ x#
type$=type$+CHR$(x#)
UNTIL x#=-1
' Sprite Data For TYPE$
type:
DATA 0,49,0,32,0,1,85,85,85,85,85
DATA 85,64,0,170,170,170,170,170,170,128,0
DATA 85,85,85,85,85,85,64,0,160,0,0
DATA 0,0,2,128,0,79,255,255,255,255,255
DATA 64,0,168,0,0,0,0,6,128,0,72
DATA 0,0,0,0,7,64,0,168,0,0,0
DATA 0,6,128,0,72,255,255,255,255,135,64
DATA 0,168,128,0,0,0,134,128,0,72,255
DATA 255,255,255,135,64,0,168,0,0,0,0
DATA 6,128,0,72,0,0,0,0,7,64,0
DATA 168,119,119,119,119,6,128,0,72,119,119
DATA 119,119,7,64,0,168,119,119,119,119,6
DATA 128,0,72,0,0,0,0,7,64,0,168
DATA 29,221,221,221,198,128,0,72,29,221,221
DATA 221,199,64,0,168,29,221,221,221,198,128
DATA 0,72,0,0,0,0,7,64,0,168,119
DATA 119,119,119,6,128,0,72,119,119,119,119
DATA 7,64,0,168,119,119,119,119,6,128,0
DATA 72,0,0,0,0,7,64,0,168,0,0
DATA 0,0,6,128,0,72,0,0,0,0,7
DATA 64,0,168,0,0,0,0,6,128,0,79
DATA 255,255,255,255,255,64,0,175,255,255,255
DATA 255,254,128,0,85,85,85,85,85,85,64
DATA 0,170,170,170,170,170,170,128,0,85,85
DATA 85,85,85,85,64,0,-1
' To Display Sprite
' Put X,Y,TYPE$ -Whereas X= X Coordinate Y= Y Coordinate
RETURN
> PROCEDURE dbase_logo
dbase$=""
RESTORE dbase
REPEAT
READ x#
dbase$=dbase$+CHR$(x#)
UNTIL x#=-1
' Sprite Data For DBASE$
dbase:
DATA 0,39,0,36,0,1,85,85,85,85,85
DATA 0,170,170,170,170,170,0,85,85,85,85
DATA 85,0,170,170,170,170,170,0,84,0,0
DATA 0,21,0,161,255,255,255,138,0,87,0
DATA 0,0,229,0,165,0,0,0,170,0,86
DATA 248,24,31,165,0,165,100,0,37,106,0
DATA 86,163,255,198,165,0,165,96,0,5,106
DATA 0,86,160,0,6,165,0,165,96,0,5
DATA 106,0,86,161,255,134,165,0,165,97,255
DATA 133,106,0,86,161,255,134,165,0,165,97
DATA 255,133,106,0,86,161,255,134,165,0,165
DATA 97,255,133,106,0,86,161,255,134,165,0
DATA 165,97,255,133,106,0,86,160,0,6,165
DATA 0,165,96,0,5,106,0,86,160,0,6
DATA 165,0,165,96,0,5,106,0,86,191,255
DATA 254,165,0,165,85,85,85,106,0,86,170
DATA 170,170,165,0,165,85,85,85,106,0,87
DATA 255,255,255,229,0,160,0,0,0,10,0
DATA 85,85,85,85,85,0,170,170,170,170,170
DATA 0,85,85,85,85,85,0,170,170,170,170
DATA 170,0,85,85,85,85,85,0,-1
' To Display Sprite
' Put X,Y,DBASE$ -Whereas X= X Coordinate Y= Y Coordinate
RETURN
> PROCEDURE next_logo
next$=""
RESTORE next
REPEAT
READ x#
next$=next$+CHR$(x#)
UNTIL x#=-1
' Sprite Data For NEXT$
next:
DATA 0,92,0,92,0,1,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,16,0,0,0,0,0,0
DATA 0,0,0,0,0,120,0,0,0,0,0
DATA 0,0,0,0,0,1,252,0,0,0,0
DATA 0,0,0,0,0,0,7,252,0,0,0
DATA 0,0,0,0,0,0,0,63,254,0,0
DATA 0,0,0,0,0,0,0,0,255,255,0
DATA 0,0,0,0,0,0,0,0,3,255,255
DATA 0,0,0,0,0,0,0,0,0,15,192
DATA 127,128,0,0,0,0,0,0,0,0,60
DATA 0,15,192,0,0,0,0,0,0,0,1
DATA 248,0,3,224,0,0,0,0,0,0,0
DATA 7,224,255,193,224,0,0,0,0,0,0
DATA 0,31,193,255,240,240,0,0,0,0,0
DATA 0,0,127,199,255,240,120,0,0,0,0
DATA 0,0,3,255,135,255,192,252,0,0,0
DATA 0,0,0,15,255,143,254,3,254,0,0
DATA 0,0,0,0,63,63,31,248,15,254,0
DATA 0,0,0,0,0,252,63,31,224,127,223
DATA 0,0,0,0,0,7,224,63,31,129,255
DATA 31,128,0,0,0,0,31,128,63,28,7
DATA 255,31,128,0,0,0,0,126,0,63,16
DATA 31,255,31,192,0,0,0,1,248,12,63
DATA 0,127,254,31,224,0,0,0,7,224,60
DATA 127,131,255,254,31,240,0,0,0,63,192
DATA 252,127,135,255,252,63,240,0,0,0,255
DATA 195,252,127,195,255,248,63,248,0,0,3
DATA 255,207,252,127,224,255,240,127,188,0,0
DATA 1,255,255,248,127,240,63,192,254,60,0
DATA 0,0,255,255,248,127,248,0,3,240,30
DATA 0,0,2,255,255,248,255,254,0,7,192
DATA 127,0,0,6,127,255,248,255,255,192,63
DATA 1,255,128,0,7,63,255,248,255,255,255
DATA 248,15,255,192,0,7,191,255,248,255,255
DATA 255,224,63,255,192,0,7,223,255,248,255
DATA 255,255,128,63,255,224,0,7,207,255,248
DATA 255,159,254,0,63,255,240,0,7,231,255
DATA 240,254,15,248,30,31,255,240,0,7,247
DATA 255,241,248,15,224,127,15,255,248,0,15
DATA 243,255,241,224,31,225,255,7,255,252,0
DATA 15,249,255,241,128,127,247,255,135,255,254
DATA 0,15,252,255,240,1,255,255,255,195,255
DATA 254,0,15,254,255,240,7,195,255,255,225
DATA 255,255,0,15,255,127,240,30,0,255,255
DATA 240,255,255,128,15,255,63,240,120,0,255
DATA 255,240,255,255,128,15,255,159,241,240,120
DATA 127,255,248,127,255,192,31,255,223,247,225
DATA 252,255,255,252,63,255,224,31,255,207,255
DATA 227,255,255,255,252,63,255,128,31,255,231
DATA 255,199,255,255,255,254,31,254,0,31,255
DATA 243,255,199,255,255,255,255,15,248,192,31
DATA 255,251,255,199,255,31,255,255,143,231,128
DATA 31,255,249,255,199,240,3,255,255,191,31
DATA 128,63,255,252,255,199,128,1,255,255,252
DATA 127,128,63,255,254,255,224,0,1,255,255
DATA 241,255,0,63,255,255,127,224,3,240,255
DATA 255,207,255,0,31,255,255,63,248,63,248
DATA 255,254,63,254,0,15,255,255,159,255,255
DATA 248,255,248,255,254,0,7,255,255,223,255
DATA 255,248,255,227,255,254,0,7,255,255,239
DATA 255,255,248,255,143,255,252,0,3,255,255
DATA 231,255,255,241,254,63,255,252,0,1,255
DATA 255,243,255,223,193,241,255,255,248,0,1
DATA 255,255,251,255,142,3,199,255,255,248,0
DATA 0,255,255,249,255,0,15,31,255,255,248
DATA 0,0,127,255,252,255,128,60,127,255,255
DATA 240,0,0,63,255,254,127,224,227,255,255
DATA 255,240,0,0,63,255,255,127,255,143,255
DATA 255,255,224,0,0,31,255,255,63,254,63
DATA 255,255,255,224,0,0,15,255,255,159,248
DATA 255,255,255,255,192,0,0,7,255,255,223
DATA 199,255,255,255,255,192,0,0,7,255,255
DATA 239,63,255,255,255,255,192,0,0,3,255
DATA 255,228,255,255,255,255,255,128,0,0,1
DATA 255,255,241,255,255,255,255,252,0,0,0
DATA 0,255,255,243,255,255,255,255,240,0,0
DATA 0,0,255,255,247,255,255,255,255,192,0
DATA 0,0,0,127,255,231,255,255,255,255,0
DATA 0,0,0,0,63,255,231,255,255,255,252
DATA 0,0,0,0,0,63,255,239,255,255,255
DATA 240,0,0,0,0,0,31,255,207,255,255
DATA 255,128,0,0,0,0,0,15,255,207,255
DATA 255,254,0,0,0,0,0,0,7,255,223
DATA 255,255,248,0,0,0,0,0,0,7,255
DATA 159,255,255,224,0,0,0,0,0,0,3
DATA 255,159,255,255,0,0,0,0,0,0,0
DATA 1,255,191,255,252,0,0,0,0,0,0
DATA 0,1,255,63,255,240,0,0,0,0,0
DATA 0,0,0,255,63,255,192,0,0,0,0
DATA 0,0,0,0,127,127,255,0,0,0,0
DATA 0,0,0,0,0,62,127,248,0,0,0
DATA 0,0,0,0,0,0,62,127,224,0,0
DATA 0,0,0,0,0,0,0,30,255,128,0
DATA 0,0,0,0,0,0,0,0,12,254,0
DATA 0,0,0,0,0,0,0,0,0,4,248
DATA 0,0,0,0,0,0,0,0,0,0,5
DATA 192,0,0,0,0,0,0,0,0,0,0
DATA 1,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0,0,0,0
DATA -1
' To Display Sprite
' Put X,Y,NEXT$ -Whereas X= X Coordinate Y= Y Coordinate
RETURN
> PROCEDURE circ
circ$=""
RESTORE circle
REPEAT
READ x#
circ$=circ$+CHR$(x#)
UNTIL x#=-1
' Sprite Data For CIRCLE$
circle:
DATA 0,35,0,34,0,1,170,170,170,170,160
DATA 0,85,85,85,85,80,0,170,170,170,170
DATA 160,0,85,85,85,85,80,0,170,171,254
DATA 170,160,0,85,95,255,213,80,0,170,252
DATA 3,234,160,0,85,224,0,117,80,0,171
DATA 192,0,58,160,0,87,128,0,29,80,0
DATA 171,0,0,14,160,0,86,0,0,7,80
DATA 0,174,0,0,6,160,0,86,0,0,7
DATA 80,0,172,0,0,3,160,0,92,0,0
DATA 3,80,0,172,0,0,3,160,0,92,0
DATA 0,3,80,0,172,0,0,3,160,0,92
DATA 0,0,3,80,0,172,0,0,3,160,0
DATA 92,0,0,3,80,0,174,0,0,6,160
DATA 0,86,0,0,7,80,0,174,0,0,6
DATA 160,0,87,0,0,13,80,0,171,128,0
DATA 30,160,0,85,192,0,61,80,0,170,224
DATA 0,122,160,0,85,124,3,245,80,0,170
DATA 191,255,170,160,0,85,87,253,85,80,0
DATA 170,170,170,170,160,0,85,85,85,85,80
DATA 0,170,170,170,170,160,0,-1
' To Display Sprite
' Put X,Y,CIRCLE$ -Whereas X= X Coordinate Y= Y Coordinate
RETURN
> PROCEDURE rect
rect$=""
RESTORE rect
REPEAT
READ x#
rect$=rect$+CHR$(x#)
UNTIL x#=-1
' Sprite Data For RECT$
rect:
DATA 0,33,0,34,0,1,170,170,170,170,160
DATA 0,85,85,85,85,80,0,170,170,170,170
DATA 160,0,85,85,85,85,80,0,191,255,255
DATA 254,160,0,95,255,255,255,80,0,184,0
DATA 0,6,160,0,88,0,0,7,80,0,184
DATA 0,0,6,160,0,88,0,0,7,80,0
DATA 184,0,0,6,160,0,88,0,0,7,80
DATA 0,184,0,0,6,160,0,88,0,0,7
DATA 80,0,184,0,0,6,160,0,88,0,0
DATA 7,80,0,184,0,0,6,160,0,88,0
DATA 0,7,80,0,184,0,0,6,160,0,88
DATA 0,0,7,80,0,184,0,0,6,160,0
DATA 88,0,0,7,80,0,184,0,0,6,160
DATA 0,88,0,0,7,80,0,184,0,0,6
DATA 160,0,88,0,0,7,80,0,184,0,0
DATA 6,160,0,88,0,0,7,80,0,184,0
DATA 0,6,160,0,88,0,0,7,80,0,191
DATA 255,255,254,160,0,95,255,255,255,80,0
DATA 170,170,170,170,160,0,85,85,85,85,80
DATA 0,170,170,170,170,160,0,-1
' To Display Sprite
' Put X,Y,RECT$ -Whereas X= X Coordinate Y= Y Coordinate
RETURN
> PROCEDURE tri
tri$=""
RESTORE tri
REPEAT
READ x#
tri$=tri$+CHR$(x#)
UNTIL x#=-1
' Sprite Data For TRI$
tri:
DATA 0,35,0,33,0,1,170,170,170,170,160
DATA 0,85,85,85,85,80,0,170,170,170,170
DATA 160,0,85,85,117,85,80,0,170,170,234
DATA 170,160,0,85,85,245,85,80,0,170,170
DATA 250,170,160,0,85,85,157,85,80,0,170
DATA 171,154,170,160,0,85,87,13,85,80,0
DATA 170,171,14,170,160,0,85,86,7,85,80
DATA 0,170,174,6,170,160,0,85,92,3,85
DATA 80,0,170,172,3,170,160,0,85,88,1
DATA 213,80,0,170,184,1,170,160,0,85,112
DATA 0,213,80,0,170,176,0,234,160,0,85
DATA 96,0,117,80,0,170,224,0,106,160,0
DATA 85,192,0,53,80,0,170,192,0,58,160
DATA 0,85,128,0,29,80,0,171,128,0,26
DATA 160,0,87,0,0,13,80,0,171,0,0
DATA 14,160,0,86,0,0,7,80,0,174,0
DATA 0,6,160,0,95,255,255,255,80,0,175
DATA 255,255,255,160,0,85,85,85,85,80,0
DATA 170,170,170,170,160,0,85,85,85,85,80
DATA 0,-1
' To Display Sprite
' Put X,Y,TRI$ -Whereas X= X Coordinate Y= Y Coordinate
RETURN
> PROCEDURE size
size$=""
RESTORE size
REPEAT
READ x#
size$=size$+CHR$(x#)
UNTIL x#=-1
' Sprite Data For SIZE$
size:
DATA 0,30,0,29,0,1,85,85,85,84,170
DATA 170,170,170,85,85,85,84,170,170,170,170
DATA 85,87,255,244,170,170,0,26,85,86,255
DATA 212,170,170,128,90,85,86,128,84,170,170
DATA 128,90,85,86,128,84,170,170,128,90,85
DATA 86,128,84,170,170,128,90,87,254,255,212
DATA 172,2,0,26,85,255,255,244,173,255,170
DATA 170,85,255,181,84,173,255,170,170,85,255
DATA 181,84,173,255,170,170,85,255,181,84,173
DATA 255,170,170,85,255,181,84,172,0,42,170
DATA 87,255,245,84,170,170,170,170,85,85,85
DATA 84,170,170,170,170,-1
' To Display Sprite
' Put X,Y,SIZE$ -Whereas X= X Coordinate Y= Y Coordinate
RETURN
> PROCEDURE credit_box
SGET putback$
GOSUB next_button(195,95,405,245)
GOSUB next_text_box(204,104,395,235)
PUT 252,110,next$
GET 199,99,401,241,slid$
DEFTEXT 1,0,0,6
TEXT 216,213,"ALTERNATIVE INTERFACE"
DEFTEXT 1,0,0,4
TEXT 228,221,"1991, DAVID BECKER, v1.1"
DEFTEXT 1,0,0,13
DO
LOOP UNTIL MOUSEK=1 AND MOUSEX>195 AND MOUSEX<405 AND MOUSEY>95 AND MOUSEY<245
GOSUB next_button_press(195,95,405,245)
SPUT putback$
RETURN