100 REMark programa boot 110 REMark version 1 - jav 2008 120 : 130 REMark Programa 140 : 150 VALORES : REMark carga variables 160 PRIMERO : REMark ejecuta primero 170 PANTALLA : REMark muestra pantalla 180 LISTA : REMark lee/lista entradas 190 MUESTRA : REMark primera entrada 200 SELECCION: REMark elije opcion 210 ULTIMO : REMark ejecuta ultimo 220 LANZA : REMark lanza aplicacion 230 STOP 240 : 250 REMark Procedimientos 260 : 270 DEFine PROCedure VALORES 280 : 290 REMark ruta 300 disp$='flp1_' 310 : 320 REMark ***** variables modificables 330 modo=512 340 REMark fondo de pantalla 350 fondo=1 : REMark activa background 360 fondo$='bg_scr' : fonpos=131072 370 REMark codigo de teclas de seleccion 380 sube=208: baja=216: opci=32 390 REMark ancho y alto de ventana en chr 400 anch=52 : alto=10 : lon=12 410 REMark ancho y alto de chr en pixels 420 an_ch=7 : al_ch=10: borde=3 430 REMark posicion de ventana en pixels 440 xw=64 : yw=105 450 REMark pos. de titulo, subt. y nota 460 xti=8 : xsu=4 : xno=22 470 yti=11 : ysu=11 : yno=12 480 REMark ancho sombra en pixels y color 490 sombx=7 : somby=5 : pa_so=0 500 REMark colores para menu y primera 510 in_se=7 : pa_se=2 : prime=2 520 REMark numeros de canales 530 ch_fi=4 : ch_bg=5 : ch_me=6 : ch_in=7 540 REMark tinta y papel de canales 550 in_wb=7 : in_bg=7 : in_me=0 : in_in=0 560 pa_wb=0 : pa_bg=16: pa_me=4 : pa_in=7 570 : 580 REMark ***** variables no modificalbes 590 pos=1 : old_pos=1 600 an=(an_ch*anch)+(borde*4) 610 al=(al_ch*alto)+(borde*2) 620 xw_bg=xw+sombx : yw_bg=yw+somby 630 an_me=lon*an_ch : an_in=an-an_me 640 xw_in=xw+an_me 650 END DEFine VALORES 660 : 670 DEFine PROCedure PRIMERO 680 TK2_EXT 690 PRINT "Disco Aventuras. Cargando..." 700 REMark FORMAT ram1_ 710 COPY disp$&'zip_exe' TO ram1_zip_exe 720 END DEFine PRIMERO 730 : 740 DEFine PROCedure ULTIMO 750 CLS #ch_in : PRINT\\\;" " 760 PRINT #ch_in,"Cargando"!aplica$&"..." 770 END DEFine ULTIMO 780 : 790 DEFine PROCedure PANTALLA 800 MODE modo 810 OPEN #ch_bg,scr_512x256a0x0 820 PAPER #ch_bg,pa_bg : INK #ch_bg,in_bg 830 CLS #ch_bg 840 IF fondo: LBYTES disp$&fondo$,fonpos 850 PAUSE 1 : REMark necesario en emulador 860 OPEN #ch_me,'scr_'&an&'x'&al&'a'&xw_bg&'x'&yw_bg 870 PAPER #ch_me,pa_so : CLS #ch_me 880 WINDOW #ch_me,321,24,63,38 890 CLS #ch_me 900 WINDOW #ch_me,an,al,xw,yw 910 PAPER #ch_me,pa_wb : INK #ch_me,in_wb 920 CLS #ch_me 930 WINDOW #ch_me,an_me,al,xw,yw 940 PAPER #ch_me,pa_me : INK #ch_me,in_me 950 CLS #ch_me : BORDER #ch_me,borde 960 OPEN #ch_in,'scr_'&an_in&'x'&al&'a'&xw_in&'x'&yw 970 PAPER #ch_in,pa_in : INK #ch_in,in_in 980 CLS #ch_in : BORDER #ch_in,borde 990 END DEFine PANTALLA 1000 : 1010 DEFine PROCedure LISTA 1020 OPEN #ch_fi,disp$&'boot_info' 1030 REMark cargando textos 1040 INPUT #ch_fi,nulo$ 1050 INPUT #ch_fi,nulo$ 1060 INPUT #ch_fi,titu$ 1070 INPUT #ch_fi,sub1$ 1080 INPUT #ch_fi,sub2$ 1090 INPUT #ch_fi,nota$ 1100 REMark mostrando textos 1110 OVER #ch_bg,1 1120 AT #ch_bg,xti,yti 1130 CSIZE #ch_bg,1,1 1140 PRINT #ch_bg,titu$ 1150 CSIZE #ch_bg,0,0 1160 INK #ch_bg,4 1170 AT #ch_bg,xsu,ysu 1180 PRINT #ch_bg,sub1$ 1190 AT #ch_bg,xsu+1,ysu 1200 PRINT #ch_bg,sub2$ 1210 INK #ch_bg,in_bg 1220 AT #ch_bg,xno,yno 1230 PRINT #ch_bg,nota$ 1240 OVER #ch_bg,0 1250 REMark cargando numero de programas 1260 INPUT #ch_fi,nulo$ 1270 INPUT #ch_fi,progs 1280 INPUT #ch_fi,nulo$ 1290 DIM lista$(progs,2,lon) 1300 REMark cargando y mostrando listado 1310 FOR bu=1 TO progs 1320 INPUT #ch_fi,nulo$ 1330 IF LEN(nulo$) > lon THEN 1340 nulo$=nulo$(1 TO lon) 1350 END IF 1360 lista$(bu,1)=nulo$ 1370 PRINT #ch_me,nulo$ 1380 nulo=LEN(nulo$) 1390 IF nulo < lon 1400 FOR b=1 TO lon-nulo+1 1410 nulo$=nulo$&" " 1420 END FOR b 1430 END IF 1440 lista$(bu,2)=nulo$ 1450 END FOR bu 1460 CLOSE #ch_fi 1470 END DEFine LISTA 1480 : 1490 DEFine PROCedure MUESTRA 1500 aplica$=lista$(pos,1) 1510 AT #ch_me,old_pos-1,0 1520 PRINT #ch_me,lista$(old_pos,2) 1530 AT #ch_me,pos-1,0 1540 PAPER #ch_me,pa_se : INK #ch_me,in_se 1550 PRINT #ch_me,lista$(pos,2) 1560 PAPER #ch_me,pa_me : INK #ch_me,in_me 1570 CLS #ch_in 1580 AT #ch_in,0,0 1590 OPEN #ch_fi,disp$&aplica$&'_info' 1600 INK #ch_in,prime 1610 INPUT #ch_fi,nulo$ 1620 PRINT #ch_in,nulo$ 1630 INK #ch_in,in_in 1640 REPeat bu 1650 IF EOF(#ch_fi) THEN EXIT bu 1660 INPUT #ch_fi,nulo$ 1670 PRINT #ch_in,nulo$ 1680 END REPeat bu 1690 CLOSE #ch_fi 1700 END DEFine MUESTRA 1710 : 1720 DEFine PROCedure SELECCION 1730 REPeat bucle 1740 nulo$=INKEY$(-1) 1750 nulo=CODE(nulo$) 1760 old_pos=pos 1770 SELect ON nulo 1780 =opci : EXIT bucle 1790 =sube : pos=pos-1 1800 IF pos=0 THEN pos=progs 1810 =baja : pos=pos+1 1820 IF pos=progs+1 THEN pos=1 1830 END SELect 1840 MUESTRA 1850 END REPeat bucle 1860 END DEFine SELECCION 1870 : 1880 DEFine PROCedure LANZA 1890 CLOSE #ch_me 1900 CLOSE #ch_in 1910 PAPER #ch_bg,0 1920 CLS #ch_bg 1930 CLOSE #ch_bg 1940 EW ram1_zip_exe;disp$&aplica$&'_z5' 1950 END DEFine LANZA