Home » Archimedes archive » Acorn Computing » 1993 07 Mega Disk.adf » 93_07 » DataVision/!DataVis/!RunImage
DataVision/!DataVis/!RunImage
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Archimedes archive » Acorn Computing » 1993 07 Mega Disk.adf » 93_07 |
| Filename: | DataVision/!DataVis/!RunImage |
| Read OK: | ✔ |
| File size: | 4726 bytes |
| Load address: | 0000 |
| Exec address: | 0000 |
File contents
0REM DataVision Copyright (C) 1992 Silicon Vision Ltd.
10PROCeA:PROCcA:ONERRORPROCzA:PROCxA:END
170PROCUA:PROCmA:PROCRA:PROCLA:ONERRORPROCzA
240mA$=FNGA:IFmA$<>""THEN
290PROCBB(mA$):
300ENDIF
310REPEAT:PROCaA:UNTILMC%:PROCxA:END:
430DEFPROCaA:LOCALX%,Y%:SYS&400C7,1,gC%TOTA%:CASETA%OF
470WHENbA%:X%=gC%!4:Y%=gC%!16:CASE!gC%OF
520OTHERWISE:SYS&400C5,,gC%:
560ENDCASE:
580WHENFB%:PROCnA(!gC%):
610WHENmA%:CASE!gC%OF
630OTHERWISE:SYS&400C6,,gC%:
670ENDCASE:
690WHENLB%:PROCQA(!gC%,gC%!4,gC%!8,gC%!12,gC%!16,gC%!20):
720WHENuA%:PROCkA(gC%):
750WHENHB%,OB%:PROCWA(gC%):
780ENDCASE:ENDPROC:
830DEFPROCrA(fC%,x%,y%,vA%,kA%,MB%,`A%,hA%):!gC%=fC%:gC%!4=x%:gC%!8=y%-kA%:gC%!12=x%+vA%:gC%!16=y%:gC%!20=MB%:gC%!24=`A%:gC%!28=hA%:SYS&400C5,,gC%:ENDPROC:
970DEFPROCuA(fC%):!gC%=fC%:SYS&400C6,,gC%:ENDPROC:
1040DEFPROCnA(fC%):LOCALTC%:!gC%=fC%:SYS&400C8,,gC%TOTC%:CASEfC%OF
1090WHENUC%,WC%:PROCSA(TC%):
1130ENDCASE:ENDPROC:
1180DEFPROCSA(TC%):LOCALX%,Y%:X%=gC%!4+32:Y%=gC%!16-16:WHILETC%:PROCOA(X%,Y%,SA$,36,7,fB%):SYS&400CA,,gC%TOTC%:ENDWHILE:ENDPROC:
1300DEFPROCQA(HA%,FA%,b%,h%,i%,NA%):CASEh%OF
1320WHENXC%:IF(b%AND2)THEN
1350PROCsA(XC%,RA%):
1360ENDIF
1370WHENUC%:PROCTA(b%,i%):
1410WHENWC%:PROClA(b%,i%):
1440ENDCASE:ENDPROC:
1490DEFPROCTA(b%,i%):CASEi%OF
1510WHENpA%:PROCvA:PROCuA(UC%):
1560ENDCASE:ENDPROC:
1610DEFPROClA(b%,i%):PROCvA:PROCuA(WC%):CASEi%OF
1650WHENXA%:CASE`B%OF
1680WHENaB%:PROCCB:MC%=TRUE:
1730ENDCASE:
1750WHENwA%:CASE`B%OF
1770ENDCASE:
1800ENDCASE:ENDPROC:
1850DEFPROCkA(gC%):LOCALX%,Y%:CASEAAOF
1880WHENXC%:PROCgA:
1920OTHERWISE:ERROR1,"Unknown menu type"
1940ENDCASE:IF(FNJA(X%,Y%)AND1)=1THEN
1970PROCsA(qA%,cA%):
1980ENDIF
1990ENDPROC:
2060DEFPROCgA:LOCALX%,I%,mA$:CASE!gC%OF
2090WHENnA%:PROCGB("!dv2"):
2130WHENAB%:IFlA$<>"*NONE*"THEN
2150PROCCB:IFdC%<>-1THEN
2170PROCDB(filelistmenu%,dC%,0,0):dC%=-1:
2190ENDIF
2200ENDIF
2210WHENBB%:PROCHB("!dv12"):
2250WHENtA%:PROCHB("!dv8"):
2280WHENSA%:PROCHB("!dv1"):
2310WHEN_A%:PROCHB("!dv13"):
2340WHENiA%:PROCHB("!dv3"):
2370WHENeA%:PROCHB("!dv11"):
2400WHENdA%:PROCHB("!dv14"):
2430WHENZA%:PROCHB("!dv10"):
2460WHENIB%:PROCHB("!dv9"):
2490WHENgA%:PROCGB("!dv5"):
2520WHENrA%:PROCGB("!dv15"):
2550WHENxA%:PROCHB("!dv4"):
2580WHENVB%:PROCGB("!dvPort"):
2610WHENWA%:CASEgC%!4OF
2630WHENWB%:IFlA$<>"*NONE*"THEN
2660X%=FNOA:IFcC%>=20THEN
2680CLOSE#X%:ERROR1,"File list is full (Maximum of 20 files)"
2700ENDIF
2710CLOSE#X%:PROCFB:FORI%=0TOcC%-1:IFCA$(I%)=lA$THEN
2750ERROR1,"File '"+lA$+"' is already in file list"
2760ENDIF
2770NEXT:X%=FNOA:cC%+=1:PTR#X%=(cC%-1)*17+4:PRINT#X%,lA$:PTR#X%=(cC%-1)*17+15:PRINT#X%,fA$:PTR#X%=(cC%-1)*17+18:PRINT#X%,eA$:PTR#X%=0:PRINT#X%,STR$(cC%):CLOSE#X%:PROCFB:dC%=cC%-1:PROCEB(filelistmenu%,dC%,0,0):
2920ENDIF
2930WHENRB%:I%=gC%!8:IFI%<>-1THEN
2970X%=FNOA:IFcC%=0THEN
2990CLOSE#X%:ERROR1,"File list is empty"
3010ENDIF
3020JA$=lA$:IA$=fA$:MA$=eA$:PTR#X%=(cC%-1)*17+4:INPUT#X%,lA$:PTR#X%=(cC%-1)*17+15:INPUT#X%,fA$:PTR#X%=(cC%-1)*17+18:INPUT#X%,eA$:PTR#X%=I%*17+4:PRINT#X%,lA$:PTR#X%=I%*17+15:PRINT#X%,fA$:PTR#X%=I%*17+18:PRINT#X%,eA$:cC%-=1:PTR#X%=0:PRINT#X%,STR$(cC%):lA$=JA$:fA$=IA$:eA$=MA$:CLOSE#X%
3240IF(I%=dC%)THEN
3250dC%=-1:PROCCB:
3270ENDIF
3280PROCFB:IF(dC%<>-1)THEN
3300IF(dC%=cC%)THEN
3310dC%=I%:
3320ENDIF
3330PROCEB(filelistmenu%,dC%,0,0):
3340ENDIF
3350ENDIF
3360ENDCASE:
3390WHENlB%:PROCBB(FNNA(menu_filename%)):
3420WHENjA%:I%=gC%!4:IFI%<>-1THEN
3450IFdC%<>-1THEN
3460PROCDB(filelistmenu%,dC%,0,0):
3470ENDIF
3480dC%=I%:PROCEB(filelistmenu%,dC%,0,0):X%=FNOA:PTR#X%=I%*17+15:INPUT#X%,fA$:PTR#X%=I%*17+18:INPUT#X%,eA$:lA$=CA$(I%):CLOSE#X%:PROCtA:
3580ENDIF
3590WHENVA%:IF(lA$<>"*NONE*")THEN
3620PROCPA(aB%,"DataVision: Quit and close current files?"):
3630ELSE:MC%=TRUE:
3650ENDIF
3660ENDCASE:ENDPROC:
3730DEFPROCBB(mA$):LOCALI%:mA$=FNDA(mA$):IF(mA$="")OR(LENmA$>10)THEN
3770ERROR1,"Illegal Filename"
3780ENDIF
3790IF(dC%<>-1)THEN
3800PROCDB(filelistmenu%,dC%,0,0):
3810ENDIF
3820I%=0:WHILE(I%<cC%)AND(CA$(I%)<>mA$):I%+=1:ENDWHILE:IF(CA$(I%)=mA$)THEN
3870dC%=I%:PROCEB(filelistmenu%,dC%,0,0):
3890ELSE:dC%=-1:
3910ENDIF
3920lA$=mA$:PROCtA:ENDPROC:
3980DEFPROCCB:LOCALX%:OSCLI"CLOSE":X%=OPENOUT(FNPA("NIM")):PRINT#X%,"*NONE*","0",WA$,"0",YA$,VA$:CLOSE#X%:lA$="*NONE*":fA$="0":ENDPROC:
4100DEFPROCGB(mA$):LOCALnB%,tB%,_B%,BA$(),I%,key$:DIMBA$(12):PROCfA(lA$):PROCMA:SYS&6,229,0,0TO,nB%:tB%=MODE:_B%=FNKA(2,160*1024):OSCLI"Dir <DataVision$Dir>":RESTORE+0:FORI%=1TO12:BA$(I%)=FNIA("key$"+STR$I%):READkey$:OSCLI"Key "+STR$I%+" "+key$:NEXT:SYS&400DE,"Run "+mA$:SYS&6,229,nB%,0:SYS&6,124
4290FORI%=1TO12:OSCLI"Key "+STR$I%+" "+BA$(I%):NEXT:OSCLI"FX 20":VDU20:SYS&400E3,tB%:_B%=FNKA(2,_B%):ENDPROC:
4400DATA "*Dir <DataVision$Dir>.Accs|MRUN invo|M"
4410DATA "*Dir <DataVision$Dir>.Accs|MRUN credit|M"
4420DATA "*Dir <DataVision$Dir>.Accs|MRUN sle|M"
4430DATA "*Dir <DataVision$Dir>.Accs|MRUN custlist|M"
4440DATA "*Dir <DataVision$Dir>.Accs|MRUN cad|M"
4450DATA "*Dir <DataVision$Dir>.Accs|MRUN pfr|M"
4460DATA "*Dir <DataVision$Dir>.Accs|MRUN rsr|M"
4470DATA "*Dir <DataVision$Dir>.Accs|MRUN msr|M"
4480DATA "*Dir <DataVision$Dir>.Accs|MRUN masr|M"
4490DATA "*Dir <DataVision$Dir>.Accs|MRUN ple|M"
4500DATA "*Dir <DataVision$Dir>.Accs|MRUN supplist|M"
4510DATA "QUIT|M"
4520DEFPROCHB(mA$):IFlA$<>"*NONE*"THEN
4570PROCGB(mA$):
4580ELSE:ERROR1,"No File open"
4600ENDIF
4610ENDPROC:
4650DEFPROCtA:LOCALH%,M%,X%:H%=(TIMEDIV360000)MOD60:M%=(TIMEDIV6000)MOD60:YA$=STR$(H%)+":"+STR$(M%):X%=OPENOUT(FNPA("NIM")):PRINT#X%,lA$,fA$,WA$,eA$,YA$,VA$:CLOSE#X%:ENDPROC:
4770DEFPROCeA:RESTORE+0:READLA$,BA$,ZA$,FA$:lA%=&DB5:AA$=ZA$:DIMgC%&400,CC% 256,eC%&200:SYS&400C0,200,&4B534154,LA$TOBA%,TB%:XC%=-2:CB%=-1:MA%=-2:FB%=1:bA%=2:mA%=3:JA%=4:IA%=5:LB%=6:KA%=7:OA%=8:uA%=9:CA%=10:HB%=17:OB%=18:YA%=1024:KB%=0:oA%=3:GA%=4
5030GB%=8:zA%=&400C0:UA%=0:fB%=1:JB%=2:ENDPROC:
5140DATA "DataVision" : REM Application name
5150DATA "DataVision" : REM Icon bar version of name
5160DATA "<DataVision$Dir>" : REM Directory name
5170DATA "!DataVis" : REM Icon Sprite name
5180DEFPROCcA:LOCALbA$:DIMmB% 256:SYS&10TObA$:$mB%=MID$(bA$,INSTR(bA$,"!RunImage")+10):YC%=mB%:WHILE(?YC%=32):YC%+=1:ENDWHILE:ENDPROC:
5340DEFFNGA:LOCALbA$,c%:bA$="":c%=?YC%:WHILE(c%>32):bA$+=CHR$c%:YC%+=1:c%=?YC%:ENDWHILE:WHILE(c%=32):YC%+=1:c%=?YC%:ENDWHILE:=bA$:
5510DEFPROCRA:LOCALEC%:SYS&406C0:GA$="1.3":sB%=6:dB%=2:$FNCA(infoW%,DB%)=GA$:`B%=0:aB%=0:EA%=0:dC%=-1:DIMCA$(80),filelistmenu%&400:PROCYA:PROCFB:SB%=99:OA$="":RESTORE+0:READEC%:WHILEEC%<>-1:OA$+=CHR$(EC%):READEC%:ENDWHILE:MC%=0:SYS&406C1
5520ENDPROC
5800DATA 0,44,53,36,32,56,32,109,43,36,33,40,109,62,36,55,40,109,40,53,46,40,40,41,40,41,109,43,34,63,109,41,40,32,34,109,59,40,63,62,36,34,35,-1
5810DEFPROCYA:LOCALX%:lA$="*NONE*":fA$="0":WA$=FNEA("%dy/%mn/%yr"):eA$="0":YA$="23:59":VA$="0":X%=OPENIN(FNPA("NIM2")):IFX%=0THEN
5940X%=OPENOUT(FNPA("NIM2")):PRINT#X%,"0":
5960ENDIF
5970CLOSE#X%:X%=OPENOUT(FNPA("NIM")):PRINT#X%,lA$,fA$,WA$,eA$,YA$,VA$:CLOSE#X%:ENDPROC:
6050DEFPROCjA:ERROR1,FNFA(OA$)
6070ENDPROC:
6110DEFPROCUA:DIMr%&100,jB%&200:pB%=0:SYS&400EATO,B%:eB%=FNHA(CB%,0,0,96,120,&2102,FA$,B%):ENDPROC:
6350DEFPROCLA:LOCALDATA
6370RESTORE+0:PROCwA(menu_filename%,64):PROCwA(menu_val%,16):kB%=&2000:fA%=256:DIMZB% kB%,NB% fA%:JC%=0:NB%?0=13::filemenu%=FNMA:
6490DATA 1,"Filename"
6500DATA ....2{64/menu_filename%/}
6510PA%=FNMA:
6530DATA 1,"Value"
6540DATA ....2{16/menu_val%/}
6550toolsmenu%=FNMA:
6570DATA 2,"FileTools"
6580DATA ....0{//Add File}
6590DATA ....1{filelistmenu%//Remove File}
6600WB%=0:RB%=1:sA%=20:PB%=6:RA%=FNMA:
6660DATA 20,"DataVision"
6670DATA .*..3{infoW%//Info}
6680DATA ....0{//Create}
6690DATA ....0{//Close File}
6700DATA ....0{//Alter Form}
6710DATA .*..0{//Relations}
6720DATA ....0{//Add}
6730DATA ....0{//Modify}
6740DATA ....0{//Delete}
6750DATA .*..0{//Sort}
6760DATA ....0{//Browse}
6770DATA ....0{//Queries}
6780DATA ....0{//Reports}
6790DATA .*..0{//WordProcess}
6800DATA ....1{toolsmenu%//FileTools}
6810DATA ....0{//ReportWriter}
6820DATA ....0{//Macros}
6830DATA .*..0{//Import/Export}
6840DATA ....1{filelistmenu%//FileList}
6850DATA .**.1{filemenu%//FileName}
6860DATA ....0{//Quit}
6870QA%=0:nA%=1:AB%=2:BB%=3:tA%=4:SA%=5:_A%=6:iA%=7:eA%=8:dA%=9:ZA%=10:IB%=11:gA%=12:WA%=13:rA%=14:xA%=15:VB%=16:jA%=17:lB%=18:VA%=19:ENDPROC:
7140DEFPROCmA:LOCALSC%,wB%,BC%,AC%,UA$:wB%=&C00:DIMBC% wB%:AC%=BC%:SC%=0:SYS&400D9,,ZA$+".!Templates":REPEAT:$eC%="*"+CHR$0:SYS&400DB,,gC%,AC%,BC%+wB%,-1,eC%,SC%TO,,AC%,,,,SC%:IFSC%<>0THEN
7250UA$=FNNA(eC%):CASEUA$OF
7270WHEN"Info":SYS&400C1,,gC%TOinfoW%:
7310WHEN"Dialogue":SYS&400C1,,gC%TOUC%:
7340WHEN"Confirm":SYS&400C1,,gC%TOWC%:
7370OTHERWISE:ERROR1,"Unknown template '"+UA$+"' found"
7390ENDCASE:
7410ENDIF
7420UNTILSC%=0:SYS&400DA::DB%=4:pA%=1:XA%=1:wA%=2:ENDPROC:
7560DEFPROCNA(FC%):IFFC%>(SB%*YA%)THEN
7580PROCjA:
7590ENDIF
7600ENDPROC:
7640DEFPROCsA(bC%,M%):LOCALX%,Y%,Z%:Z%=FNJA(X%,Y%):qA%=bC%:cA%=M%:AA=bC%:IFbC%=XC%THEN
7710Y%=(sA%+PB%)*32+160:X%-=64:
7730ENDIF
7740SYS&400D4,,M%,X%-60,Y%+32:ENDPROC:
7790DEFPROCWA(gC%):CASEgC%!16OF
7810WHENKB%:MC%=TRUE:
7850WHENoA%:PROCbA:
7880WHENGB%:PROCdA:
7910WHEN&502:PROCiA:
7940WHENzA%:PROCZA:
7970ENDCASE:ENDPROC:
8020DEFPROCbA:LOCALbC%,mA$,xB%:xB%=0:mA$=FNNA(gC%+44):bC%=gC%!40:CASEgC%!20OF
8080WHENXC%:IFgC%!24=eB%THEN
8110xB%=TRUE:
8120ENDIF
8130ENDCASE:IFxB%THEN
8160IF(bC%=lA%)THEN
8170gC%!16=4:SYS&400E7,17,gC%:PROCBB(mA$):
8200ELSE:ERROR1,"Can't load file '"+mA$+"' (Unrecognised Filetype)"
8220ENDIF
8230ENDIF
8240ENDPROC:
8280DEFPROCdA:IFFALSETHEN
8300gC%!12=gC%!8:SYS&400E7,19,gC%:
8320ENDIF
8330ENDPROC:
8370DEFPROCiA:gC%!12=gC%!8:gC%!16+=1:IC%=gC%+20:IFgC%!36=eB%THEN
8420PROCqA("This is the icon for DataVision, the Relational Database"):PROCqA("Copyright (C) 1990 Silicon Vision Ltd."):
8440ENDIF
8450?IC%=0:!gC%=(IC%+4-gC%)ANDNOT3:SYS&400E7,17,gC%,gC%!4:ENDPROC:
8520DEFPROCqA(hA$):$IC%=hA$+"|M":IC%+=LENhA$+2:ENDPROC:
8590DEFPROCfA(mA$):LOCALFC%,QA$,x%,RA$,bC%:x%=OPENIN(FNPA(mA$+"N")):IFx%=0THEN
8630ENDPROC:
8640ENDIF
8650INPUT#x%,QA$:RA$=ZA$+QA$+"."+mA$:CLOSE#x%:SYS&8,5,RA$TObC%,,,,FC%:IFbC%=1THEN
8700PROCNA(FC%):
8710ENDIF
8720ENDPROC:
8780DEFPROCZA:CASEAAOF
8800WHENXC%:PROChA(gC%+32):
8840OTHERWISE:ERROR1,"Internal error: Unknown Menu warning issued"
8860ENDCASE:SYS&400E8,,gC%!20,gC%!24,gC%!28:ENDPROC:
8930DEFPROChA(EB%):CASE!EB%OF
8950WHENlB%:IFlA$="*NONE*"THEN
8980PROC_A(menu_filename%,""):
8990ELSE:PROC_A(menu_filename%,lA$):
9010ENDIF
9020OTHERWISE:ERROR1,"Internal error: Unknown Menu warning issued"
9050ENDCASE:ENDPROC:
9110DEFPROCFB:LOCALI%,KC%,N%:KC%=FNOA:IFcC%=0THEN
9150N%=1:CA$(0)="<No files>":
9170ELSE:N%=cC%:JA$=lA$:IA$=fA$:MA$=eA$:FORI%=1TOcC%:PTR#KC%=(I%-1)*17+4:INPUT#KC%,CA$(I%-1):NEXT:
9260ENDIF
9270PROCXA(filelistmenu%,N%,CA$()):CLOSE#KC%:ENDPROC:
9330DEFFNOA:LOCALC%:C%=OPENUP(FNPA("NIM2")):INPUT#C%,CA$:cC%=VAL(CA$):=C%:
9420DEFFNCA(fC%,OC%):gC%!0=fC%:gC%!4=OC%:SYS&400CE,,gC%:=gC%!28:
9500DEFPROC_A(aC%,cA$):$aC%=cA$+CHR$0:ENDPROC:
9610DEFFNHA(!r%,r%!4,r%!8,r%!12,r%!16,r%!20,dA$,V%):LOCALI%:IF(LENdA$>11)OR((r%!20AND&100)<>0)THEN
9640r%!20=r%!20OR&100:r%!24=FNLA(dA$,jB%,pB%):IF(r%!20AND2)=2THEN
9670r%!28=V%:
9680ELSE:r%!28=-1:
9700ENDIF
9710r%!32=LENdA$+1:
9720ELSE:$(r%+24)=dA$:
9740ENDIF
9750SYS&400C2,,r%TOI%:=I%:
9840DEFFNLA(jA$,B%,RETURNP%):LOCALQ%:Q%=B%+P%:$Q%=jA$:P%+=LENjA$+1:=Q%:
9980DEFFNMA:LOCALI%,L%,N%,P%,Q%,gC%,kA$,jA$:READN%,jA$:L%=LENjA$+1:Q%=ZB%+JC%:JC%+=28+24*N%:gC%=Q%:IFJC%>kB%THEN
10060ERROR0,"Menu buffer exceeded at '"+jA$+"'"
10070ENDIF
10080IFjA$=""THEN
10090Q%!0=0:Q%!4=0:Q%!8=0:
10120ELSE:$Q%=LEFT$(jA$,11):
10140ENDIF
10150Q%?12=sB%:Q%?13=dB%:Q%?14=6:Q%?15=0:Q%!20=40:Q%!24=0:Q%+=28:FORI%=1TON%:READkA$:PROC`A(kA$,L%,I%=N%):NEXT:gC%!16=(L%+1)*16:=gC%:
10310DEFPROCXA(oB%,N%,AA$()):LOCALI%,L%,P%,Q%,kA$,jA$:jA$="Files:":L%=LENjA$+1:Q%=oB%:$Q%=LEFT$(jA$,11):Q%?12=sB%:Q%?13=dB%:Q%?14=6:Q%?15=0:Q%!20=40:Q%!24=0:Q%+=28:FORI%=0TON%-1:kA$="....0{//"+AA$(I%)+"}":PROC`A(kA$,L%,I%=(N%-1)):NEXT:oB%!16=(L%+1)*16:ENDPROC:
10510DEFPROC`A(kA$,RETURNL%,uB%):LOCALF%,P%,R%,gA$,jA$,iA$:LOCALYB%,XB%,bB%,iB%,bC%:uB%=uB%AND&80:YB%=(MID$(kA$,1,1)="*")AND1:XB%=(MID$(kA$,2,1)="*")AND2:bB%=(MID$(kA$,3,1)="*")AND8:iB%=(MID$(kA$,4,1)="*")AND(1<<22):bC%=VALMID$(kA$,5,1):kA$=MID$(kA$,7,LENkA$-7):P%=INSTR(kA$,"/"):R%=INSTR(kA$,"/",P%+1)
10680gA$=MID$(kA$,1,P%-1):jA$=MID$(kA$,P%+1,R%-P%-1):iA$=MID$(kA$,R%+1):IFL%<LENiA$THEN
10720L%=LENiA$:
10730ENDIF
10740Q%!0=YB%ORXB%ORbB%ORuB%:Q%!4=-1:Q%!8=&06003011ORiB%:CASEbC%OF
10780WHEN0:PROCAB(iA$):
10820WHEN1:PROCAB(iA$):Q%!4=EVALgA$:
10860WHEN2:PROCVA(gA$,jA$,iA$):
10890WHEN3:PROCAB(iA$):Q%!4=EVALgA$:
10930OTHERWISE:ERROR1,"Unknown menu item type"
10950ENDCASE:Q%+=24:ENDPROC:
11020DEFPROCAB(iA$):IFLENiA$>11ORiA$="!!!"THEN
11040Q%!8=Q%!8OR&100:Q%!12=FNLA(iA$,jB%,pB%):E%=(E%+4)AND&FFFFFFFC:Q%!16=-1:Q%!20=LENiA$+1:
11090ELSE:$(Q%+12)=iA$+CHR$0:
11110ENDIF
11120ENDPROC:
11160DEFPROCVA(gA$,jA$,iA$):Q%!0=Q%!0OR4:Q%!16=-1:IFL%<12THEN
11200L%=12:
11210ENDIF
11220Q%!8=Q%!8OR(1<<8)OR(15<<12):Q%!12=EVALjA$:Q%!16=-1:Q%!20=EVALgA$:IFiA$>""THEN
11270Q%!16=FNLA(iA$,ZB%,JC%):
11280ENDIF
11290ENDPROC:
11330DEFPROCEA(M%,O%,W%,B%):M%+=W%+28+O%*24:!M%=!M%EOR(1<<B%):ENDPROC:
11400DEFFNAA(M%,O%,W%,B%):M%+=W%+28+O%*24:=(!M%AND(1<<B%))<>0:
11460DEFPROCEB(M%,O%,W%,B%):M%+=W%+28+O%*24:!M%=!M%OR(1<<B%):ENDPROC:
11530DEFPROCDB(M%,O%,W%,B%):M%+=W%+28+O%*24:!M%=!M%ANDNOT(1<<B%):ENDPROC:
11600DEFPROCJA(M%,O%,W%,B%,V%):M%+=W%+28+O%*24:!M%=(!M%ANDNOT(1<<B%))OR(V%<<B%):ENDPROC:
11670DEFPROCwA(RETURNaC%,NC%):DIMaC% NC%:?aC%=0:ENDPROC:
11740DEFFNNA(aC%):LOCALdA$:dA$="":c%=?aC%:WHILEc%>=32:dA$+=CHR$c%:aC%+=1:c%=?aC%:ENDWHILE:=dA$:
11870DEFFNJA(RETURNX%,RETURNY%):SYS&400CF,,eC%:X%=eC%!0:Y%=eC%!4:=eC%!8:
11950DEFPROCyA(H%):SYS&400D1,H%,0,-1024,1280,0:ENDPROC:
12010DEFPROCxA:SYS&406C2:SYS&400DD,TB%,&4B534154:ENDPROC:
12080DEFPROCzA:CLOSE#0:!CC%=ERR:$(CC%+4)=REPORT$+CHR$0:SYS&400DF,CC%,1,LA$:SYS&400D0,,-1:ENDPROC:
12190DEFPROCGA(RETURNfC%,aC%,EA$):PROC_A(aC%,EA$):!gC%=fC%:SYS&400CC,,gC%:gC%!76=aC%:gC%!80=-1:gC%!84=128:gC%!60=gC%!60OR(1<<8)OR1:SYS&400C3,,gC%:SYS&400C1,,gC%+4TOfC%:!gC%=fC%:SYS&400C5,,gC%:ENDPROC:
12350DEFPROCBA(RETURNfC%,F%):!gC%=fC%:SYS&400CC,,gC%:gC%!32=gC%!32ORF%:SYS&400C3,,gC%:SYS&400C1,,gC%+4TOfC%:!gC%=fC%:SYS&400C5,,gC%:ENDPROC:
12470DEFPROCHA(RETURNfC%,F%):!gC%=fC%:SYS&400CC,,gC%:gC%!32=gC%!32ANDNOTF%:SYS&400C3,,gC%:SYS&400C1,,gC%+4TOfC%:!gC%=fC%:SYS&400C5,,gC%:ENDPROC:
12590DEFFNBA(fC%,QB%):!gC%=fC%:SYS&400CC,,gC%:=gC%!QB%:
12660DEFPROCDA(DA$):SA$=DA$:PROCrA(UC%,300,800,400,300,0,0,-1):PROCpA(UC%):PROCoA(UC%):VDU7:ENDPROC:
12760DEFPROCPA(bC%,aA$):`B%=bC%:SA$=aA$:PROCrA(WC%,300,800,640,304,0,0,-1):PROCpA(WC%):PROCoA(WC%):VDU7:ENDPROC:
12870DEFPROCFA(fC%,OC%,HC%):gC%!0=fC%:gC%!4=OC%:gC%!8=HC%:gC%!12=HC%:SYS&400CD,,gC%:PROCyA(fC%):ENDPROC:
12980DEFPROCAA(fC%,OC%,HC%):gC%!0=fC%:gC%!4=OC%:gC%!8=0:gC%!12=HC%:SYS&400CD,,gC%:PROCyA(fC%):ENDPROC:
13090DEFPROCoA(fC%):LOCALX%,Y%,RC%,QC%:!gC%=fC%:SYS&400CB,,gC%:X%=gC%!4:Y%=gC%!8:RC%=gC%!12-X%:QC%=gC%!16-Y%:MOUSETO(X%+(RC%>>1)),(Y%+(QC%>>1)):ENDPROC:
13220DEFPROCpA(fC%):LOCALX%,Y%,RC%,QC%:!gC%=fC%:SYS&400CB,,gC%:X%=gC%!4:Y%=gC%!8:RC%=gC%!12-X%:QC%=gC%!16-Y%:MOUSERECTANGLEX%,Y%,RC%,QC%:ENDPROC:
13350DEFPROCvA:MOUSERECTANGLE0,0,1280,1024:ENDPROC:
13410DEFPROCIA(fC%):LOCALcB%,qB%,rB%,hB%:!gC%=fC%:SYS&400CB,,gC%:cB%=gC%!4:qB%=gC%!8:rB%=gC%!12:hB%=gC%!16:VDU24,cB%;qB%;rB%;hB%;:ENDPROC:
13540DEFPROCCA(fC%,RETURNX%,RETURNY%):!gC%=fC%:SYS&400CB,,gC%:X%=gC%!4:Y%=gC%!16:ENDPROC:
13630DEFFNIA(XA$):LOCALzB%,gA$:SYS&20023,XA$,eC%,&200,0,3TO,,zB%:IFzB%=0THEN
13670gA$="":
13680ELSE:gA$=LEFT$(FNNA(eC%),zB%):
13700ENDIF
13710=gA$:
13750DEFPROCKA(XA$,NA$):SYS&20024,XA$,NA$,LENNA$,0,2:ENDPROC:
13810DEFPROCOA(X%,Y%,cA$,W%,aA%,UB%):LOCALyB%,gB%,VC%,PC%,c%,GC%:eC%!0=164:eC%!4=4:eC%!8=165:eC%!12=5:eC%!16=-1:SYS&31,eC%,eC%:yB%=eC%!0<<eC%!4:gB%=eC%!8<<eC%!12:SYS&400E6,aA%:WHILEcA$<>"":VC%=1:PC%=1:REPEAT:c%=ASCMID$(cA$,PC%,1):PC%+=1:IF((c%=ASC(" "))OR(c%=-1))THEN
13990VC%=PC%-2:IF(VC%<=0)THEN
14010VC%=1:
14020ENDIF
14030ENDIF
14040UNTIL((PC%>=W%)OR(c%=-1)):GC%=VC%:CASEUB%OF
14070WHENUA%:MOVEX%,Y%:
14090WHENfB%:MOVEX%+(((W%-GC%)/2)*yB%),Y%:
14110WHENJB%:MOVEX%+((W%-GC%)*yB%),Y%:
14130ENDCASE:SYS&46,cA$,GC%:Y%-=gB%:IF(c%=-1)THEN
14170cA$="":
14180ELSE:cA$=MID$(cA$,VC%+2):
14200ENDIF
14210ENDWHILE:ENDPROC:
14260DEFFNPA(mA$):=ZA$+"."+mA$:
14310DEFFNDA(aA$):LOCALKA$,p%:REPEAT:KA$=aA$:p%=INSTR(aA$,"."):aA$=MID$(aA$,p%+1):UNTILp%=0:=KA$:
14420DEFFNEA(HA$):?eC%=3:SYS&7,14,eC%:SYS&C1,eC%,eC%+8,&180,HA$:=FNNA(eC%+8):
14500DEFFNFA(PA$):LOCALI%,L%:eC%?1=13:L%=LEN(PA$):FORI%=1TOL%:eC%?I%=ASC(MID$(PA$,I%,1))EOR77:NEXT:eC%?(L%+1)=13:=$(eC%+1):
14620DEFFNKA(DC%,NC%):LOCALLC%,F%,hA$:SYS&5C,DC%TO,LC%:IFLC%<NC%THEN
14660SYS&2002A,DC%,NC%-LC%TO;F%:IF(F%AND1)THEN
14680CASEDC%OF
14690WHEN0:hA$="System Heap":
14700WHEN1:hA$="RMA":
14710WHEN2:hA$="Screen Size":
14720WHEN3:hA$="Sprite Size":
14730WHEN4:hA$="Font Cache":
14740WHEN5:hA$="RAM Filing System":
14750OTHERWISE:hA$="Unknown Area":
14760ENDCASE:ERROR1,"Can't set "+hA$+" to required amount ("+STR$(NC%DIV1024)+"K is needed)"
14780ENDIF
14790ENDIF
14800=LC%:
14840DEFPROCMA:VDU23,154,255,128,191,160,160,160,160,160,23,159,255,0,255,0,0,0,0,0:VDU23,158,255,1,253,5,5,5,5,5,23,155,160,160,160,160,160,160,160,160:VDU23,157,5,5,5,5,5,5,5,5,23,156,160,160,160,160,160,191,128,255
14880VDU23,160,0,0,0,0,0,255,0,255,23,161,5,5,5,5,5,253,1,255:VDU23,162,0,0,0,255,255,0,0,0,23,164,24,24,24,24,24,24,24,24:VDU23,165,255,128,128,128,128,128,128,128,23,166,255,127,127,127,127,127,127,127
14910VDU23,167,255,254,242,242,242,242,242,254,23,168,192,32,16,8,4,2,1,1:VDU23,169,128,128,128,191,191,191,191,191,23,170,0,0,0,255,255,255,255,255:VDU23,171,1,1,1,253,253,253,253,253,23,172,164,170,174,174,174,191,128,255
14940VDU23,173,136,171,136,174,168,255,0,255,23,174,136,219,216,219,216,255,0,255:VDU23,175,133,181,133,173,181,253,1,255,23,176,255,0,1,1,1,1,1,0:VDU23,177,255,0,128,128,128,128,128,0,23,178,255,1,1,1,1,1,1,1
14970VDU23,179,128,128,128,128,128,128,128,128,23,180,24,24,1,3,7,15,15,7:VDU23,181,0,0,128,192,224,240,240,224,23,182,1,1,1,1,1,1,1,1:VDU23,183,128,128,128,128,128,128,128,255,23,184,3,1,0,0,0,0,0,255:VDU23,185,192,128,0,0,0,0,0,255,23,186,1,1,1,1,1,1,1,255
15010VDU23,187,0,0,0,3,4,8,16,32,23,188,0,0,0,255,0,0,0,0:VDU23,189,0,0,0,192,32,16,8,4,23,190,64,128,255,128,191,128,191,128:VDU23,191,0,0,255,0,254,0,254,0,23,192,0,0,255,0,0,0,0,0:VDU23,193,2,1,255,1,1,1,1,1,23,194,191,128,191,128,128,128,128,255
15050VDU23,195,254,0,254,0,0,0,0,255,23,196,0,0,0,0,0,0,0,255:VDU23,197,1,37,37,61,37,37,1,255,23,198,191,191,191,191,191,191,128,255:VDU23,199,255,255,255,255,255,255,0,255,23,200,253,253,253,253,253,253,1,255
15080VDU23,201,170,85,170,85,170,85,170,85,23,202,255,128,132,140,140,132,128,255:VDU23,203,255,1,17,49,49,17,1,255,23,204,255,128,132,134,134,132,128,255:VDU23,205,255,1,33,49,49,33,1,255,23,206,255,128,135,135,135,135,128,255
15110VDU23,207,255,1,225,225,225,225,1,255,23,208,255,128,128,131,131,128,128,255:VDU23,209,255,1,193,193,193,193,1,255,23,210,255,128,129,131,135,143,128,255:VDU23,211,255,1,129,193,225,241,1,255,23,212,255,128,131,131,131,131,128,255
15140VDU23,213,255,1,1,193,193,1,1,255,23,214,255,128,136,139,139,136,128,255:VDU23,215,255,1,17,209,209,17,1,255,23,216,63,32,32,32,32,255,255,255:VDU23,217,240,16,16,16,16,252,255,252,23,218,15,11,11,8,8,8,8,15
15170VDU23,219,224,176,144,16,16,16,16,240,23,220,120,72,72,72,120,80,72,68:VDU23,221,112,120,76,68,68,76,120,112,23,222,0,4,4,244,148,244,132,247:VDU23,223,240,224,224,144,8,4,2,1,23,224,0,0,0,255,0,0,0,0
15200VDU23,226,255,1,1,33,97,255,96,32,23,227,0,0,0,255,0,0,0,0:VDU23,129,170,85,170,85,170,85,170,85,23,228,255,255,0,0,0,0,0,0:VDU23,229,0,0,0,0,0,0,255,255,23,240,24,24,24,24,24,24,24,24:VDU23,241,0,0,0,255,0,0,0,0,23,134,0,0,255,126,60,24,0,0
15240VDU23,135,0,0,0,24,24,0,0,0,23,245,255,255,255,129,255,255,255,255:VDU23,244,255,255,231,195,195,231,255,255,23,246,255,129,255,255,255,255,255,255:VDU23,247,255,255,255,255,255,255,129,255,23,248,255,129,129,129,129,129,129,255
15270VDU23,249,255,195,195,195,195,195,195,255,23,250,255,243,227,195,195,227,243,255:VDU23,252,128,192,224,240,240,224,192,128,23,230,0,0,255,0,0,255,0,0:VDU23,231,36,36,36,36,36,36,36,36,23,232,36,36,231,0,0,231,36,36
15300VDU23,233,255,0,231,36,36,36,36,36,23,234,36,36,36,36,36,231,0,255:VDU23,235,160,160,191,128,128,191,160,160,23,236,5,5,253,1,1,253,5,5:VDU23,237,0,1,1,2,130,36,20,8,23,238,0,130,68,40,16,40,68,130
15330VDU23,253,128,128,128,128,128,128,128,255,23,251,24,24,60,24,24,0,60,0:VDU23,255,0,0,0,0,0,0,0,255,23,202,255,128,128,128,128,128,128,129:VDU23,203,255,0,0,24,24,126,126,255,23,204,255,1,1,1,1,1,1,129
15360VDU23,205,129,135,135,159,159,128,128,255,23,206,255,255,255,255,255,0,0,255:VDU23,207,129,225,225,249,249,1,1,255,23,208,255,128,128,158,159,159,159,159:VDU23,209,255,0,0,0,224,254,255,255,23,210,255,1,1,1,1,1,225,249
15390VDU23,211,159,159,159,159,158,128,128,255,23,212,255,255,254,224,0,0,0,255:VDU23,213,249,225,1,1,1,1,1,255,23,214,255,128,128,128,128,128,135,159:VDU23,215,255,0,0,0,7,127,255,255,23,216,255,1,1,121,249,249,249,249
15420VDU23,217,159,135,128,128,128,128,128,255,23,224,255,255,127,7,0,0,0,255,255:VDU23,225,249,249,249,249,121,1,1,255,23,226,255,128,128,135,132,133,132,133:VDU23,227,255,0,0,255,0,2,0,2,23,228,255,1,1,129,129,129,129,129
15450VDU23,229,132,159,159,159,159,128,128,255,23,230,0,255,255,255,255,0,0,255:VDU23,162,129,225,249,249,225,1,1,255,23,232,255,128,128,129,129,131,131,135:VDU23,218,255,0,0,192,192,224,224,240,23,234,255,1,1,121,69,133,5,9
15480VDU23,235,135,143,143,159,159,128,128,255,23,236,240,248,248,252,252,0,0,255:VDU23,237,17,17,17,1,17,1,1,255,23,238,255,128,128,128,143,143,143,143:VDU23,239,255,0,0,0,255,255,255,255,23,240,255,1,1,1,241,241,241,241
15510VDU23,242,143,143,143,143,128,128,128,255,23,243,255,255,255,255,0,0,0,255:VDU23,254,241,241,241,241,1,1,1,255,23,130,254,130,130,130,130,130,254,0:VDU23,131,254,130,186,186,186,130,254,0,23,133,254,198,170,146,170,198,254,0
15540VDU23,255,255,255,255,255,255,255,255,255:ENDPROC:
8� DataVision Copyright (C) 1992 Silicon Vision Ltd.
�eA:�cA:��zA:�xA:�
��UA:�mA:�RA:�LA:��zA
�mA$=�GA:�mA$<>""�
"
�BB(mA$):
,�
6�:�aA:�MC%:�xA:�:
�)��aA:�X%,Y%:ș&400C7,1,gC%�TA%:ȎTA%�
�#�bA%:X%=gC%!4:Y%=gC%!16:Ȏ!gC%�
:ș&400C5,,gC%:
0�:
D�FB%:�nA(!gC%):
b�mA%:Ȏ!gC%�
v:ș&400C6,,gC%:
��:
�4�LB%:�QA(!gC%,gC%!4,gC%!8,gC%!12,gC%!16,gC%!20):
��uA%:�kA(gC%):
��HB%,OB%:�WA(gC%):
�:�:
>���rA(fC%,x%,y%,vA%,kA%,MB%,`A%,hA%):!gC%=fC%:gC%!4=x%:gC%!8=y%-kA%:gC%!12=x%+vA%:gC%!16=y%:gC%!20=MB%:gC%!24=`A%:gC%!28=hA%:ș&400C5,,gC%:�:
�'��uA(fC%):!gC%=fC%:ș&400C6,,gC%:�:
4��nA(fC%):�TC%:!gC%=fC%:ș&400C8,,gC%�TC%:ȎfC%�
B�UC%,WC%:�SA(TC%):
j�:�:
�b��SA(TC%):�X%,Y%:X%=gC%!4+32:Y%=gC%!16-16:ȕTC%:�OA(X%,Y%,SA$,36,7,fB%):ș&400CA,,gC%�TC%:�:�:
$��QA(HA%,FA%,b%,h%,i%,NA%):Ȏh%�
(�XC%:�(b%�2)�
F�sA(XC%,RA%):
P�
Z�UC%:�TA(b%,i%):
��WC%:�lA(b%,i%):
��:�:
���TA(b%,i%):Ȏi%�
��pA%:�vA:�uA(UC%):
�:�:
J"��lA(b%,i%):�vA:�uA(WC%):Ȏi%�
r�XA%:Ȏ`B%�
��aB%:�CB:MC%=�:
��:
��wA%:Ȏ`B%�
��:
�:�:
:��kA(gC%):�X%,Y%:ȎAA�
X
�XC%:�gA:
�:�1,"Unknown menu type"
��:�(�JA(X%,Y%)�1)=1�
��sA(qA%,cA%):
��
��:
��gA:�X%,I%,mA$:Ȏ!gC%�
*�nA%:�GB("!dv2"):
R�AB%:�lA$<>"*NONE*"�
f�CB:�dC%<>-1�
z&�DB(filelistmenu%,dC%,0,0):dC%=-1:
��
��
��BB%:�HB("!dv12"):
��tA%:�HB("!dv8"):
��SA%:�HB("!dv1"):
�_A%:�HB("!dv13"):
$�iA%:�HB("!dv3"):
B�eA%:�HB("!dv11"):
`�dA%:�HB("!dv14"):
~�ZA%:�HB("!dv10"):
��IB%:�HB("!dv9"):
��gA%:�GB("!dv5"):
��rA%:�GB("!dv15"):
��xA%:�HB("!dv4"):
�VB%:�GB("!dvPort"):
2�WA%:ȎgC%!4�
F�WB%:�lA$<>"*NONE*"�
dX%=�OA:�cC%>=20�
x5�#X%:�1,"File list is full (Maximum of 20 files)"
��
�&�#X%:�FB:�I%=0�cC%-1:�CA$(I%)=lA$�
�/�1,"File '"+lA$+"' is already in file list"
��
Ҩ�:X%=�OA:cC%+=1:�#X%=(cC%-1)*17+4:�#X%,lA$:�#X%=(cC%-1)*17+15:�#X%,fA$:�#X%=(cC%-1)*17+18:�#X%,eA$:�#X%=0:�#X%,�(cC%):�#X%:�FB:dC%=cC%-1:�EB(filelistmenu%,dC%,0,0):
h�
r�RB%:I%=gC%!8:�I%<>-1�
�X%=�OA:�cC%=0�
� �#X%:�1,"File list is empty"
��
��JA$=lA$:IA$=fA$:MA$=eA$:�#X%=(cC%-1)*17+4:�#X%,lA$:�#X%=(cC%-1)*17+15:�#X%,fA$:�#X%=(cC%-1)*17+18:�#X%,eA$:�#X%=I%*17+4:�#X%,lA$:�#X%=I%*17+15:�#X%,fA$:�#X%=I%*17+18:�#X%,eA$:cC%-=1:�#X%=0:�#X%,�(cC%):lA$=JA$:fA$=IA$:eA$=MA$:�#X%
��(I%=dC%)�
�dC%=-1:�CB:
��
��FB:�(dC%<>-1)�
��(dC%=cC%)�
�dC%=I%:
��
�EB(filelistmenu%,dC%,0,0):
�
�
�:
>"�lB%:�BB(�NA(menu_filename%)):
\�jA%:I%=gC%!4:�I%<>-1�
z
�dC%<>-1�
��DB(filelistmenu%,dC%,0,0):
��
�pdC%=I%:�EB(filelistmenu%,dC%,0,0):X%=�OA:�#X%=I%*17+15:�#X%,fA$:�#X%=I%*17+18:�#X%,eA$:lA$=CA$(I%):�#X%:�tA:
��
�VA%:�(lA$<>"*NONE*")�
$9�PA(aB%,"DataVision: Quit and close current files?"):
.�:MC%=�:
B�
L�:�:
�3��BB(mA$):�I%:mA$=�DA(mA$):�(mA$="")�(�mA$>10)�
��1,"Illegal Filename"
��
��(dC%<>-1)�
��DB(filelistmenu%,dC%,0,0):
��
�:I%=0:ȕ(I%<cC%)�(CA$(I%)<>mA$):I%+=1:�:�(CA$(I%)=mA$)�
&dC%=I%:�EB(filelistmenu%,dC%,0,0):
2
�:dC%=-1:
F�
PlA$=mA$:�tA:�:
�e��CB:�X%:�"CLOSE":X%=�(�PA("NIM")):�#X%,"*NONE*","0",WA$,"0",YA$,VA$:�#X%:lA$="*NONE*":fA$="0":�:
���GB(mA$):�nB%,tB%,_B%,BA$(),I%,key$:�BA$(12):�fA(lA$):�MA:ș&6,229,0,0�,nB%:tB%=�:_B%=�KA(2,160*1024):�"Dir <DataVision$Dir>":�+0:�I%=1�12:BA$(I%)=�IA("key$"+�I%):�key$:�"Key "+�I%+" "+key$:�:ș&400DE,"Run "+mA$:ș&6,229,nB%,0:ș&6,124
�R�I%=1�12:�"Key "+�I%+" "+BA$(I%):�:�"FX 20":�20:ș&400E3,tB%:_B%=�KA(2,_B%):�:
0.� "*Dir <DataVision$Dir>.Accs|MRUN invo|M"
:0� "*Dir <DataVision$Dir>.Accs|MRUN credit|M"
D-� "*Dir <DataVision$Dir>.Accs|MRUN sle|M"
N2� "*Dir <DataVision$Dir>.Accs|MRUN custlist|M"
X-� "*Dir <DataVision$Dir>.Accs|MRUN cad|M"
b-� "*Dir <DataVision$Dir>.Accs|MRUN pfr|M"
l-� "*Dir <DataVision$Dir>.Accs|MRUN rsr|M"
v-� "*Dir <DataVision$Dir>.Accs|MRUN msr|M"
�.� "*Dir <DataVision$Dir>.Accs|MRUN masr|M"
�-� "*Dir <DataVision$Dir>.Accs|MRUN ple|M"
�2� "*Dir <DataVision$Dir>.Accs|MRUN supplist|M"
�� "QUIT|M"
���HB(mA$):�lA$<>"*NONE*"�
�
�GB(mA$):
��:�1,"No File open"
��
�:
*|��tA:�H%,M%,X%:H%=(��360000)�60:M%=(��6000)�60:YA$=�(H%)+":"+�(M%):X%=�(�PA("NIM")):�#X%,lA$,fA$,WA$,eA$,YA$,VA$:�#X%:�:
����eA:�+0:�LA$,BA$,ZA$,FA$:lA%=&DB5:AA$=ZA$:�gC%&400,CC% 256,eC%&200:ș&400C0,200,&4B534154,LA$�BA%,TB%:XC%=-2:CB%=-1:MA%=-2:FB%=1:bA%=2:mA%=3:JA%=4:IA%=5:LB%=6:KA%=7:OA%=8:uA%=9:CA%=10:HB%=17:OB%=18:YA%=1024:KB%=0:oA%=3:GA%=4
�)GB%=8:zA%=&400C0:UA%=0:fB%=1:JB%=2:�:
?� "DataVision" : REM Application name
G� "DataVision" : REM Icon bar version of name
(=� "<DataVision$Dir>" : REM Directory name
2?� "!DataVis" : REM Icon Sprite name
<`��cA:�bA$:�mB% 256:ș&10�bA$:$mB%=�bA$,�bA$,"!RunImage")+10):YC%=mB%:ȕ(?YC%=32):YC%+=1:�:�:
�dݤGA:�bA$,c%:bA$="":c%=?YC%:ȕ(c%>32):bA$+=�c%:YC%+=1:c%=?YC%:�:ȕ(c%=32):YC%+=1:c%=?YC%:�:=bA$:
����RA:�EC%:ș&406C0:GA$="1.3":sB%=6:dB%=2:$�CA(infoW%,DB%)=GA$:`B%=0:aB%=0:EA%=0:dC%=-1:�CA$(80),filelistmenu%&400:�YA:�FB:SB%=99:OA$="":�+0:�EC%:ȕEC%<>-1:OA$+=�(EC%):�EC%:�:MC%=0:ș&406C1
��
��� 0,44,53,36,32,56,32,109,43,36,33,40,109,62,36,55,40,109,40,53,46,40,40,41,40,41,109,43,34,63,109,41,40,32,34,109,59,40,63,62,36,34,35,-1
�m��YA:�X%:lA$="*NONE*":fA$="0":WA$=�EA("%dy/%mn/%yr"):eA$="0":YA$="23:59":VA$="0":X%=�(�PA("NIM2")):�X%=0�
4X%=�(�PA("NIM2")):�#X%,"0":
H�
R>�#X%:X%=�(�PA("NIM")):�#X%,lA$,fA$,WA$,eA$,YA$,VA$:�#X%:�:
���jA:�1,�FA(OA$)
��:
�S��UA:�r%&100,jB%&200:pB%=0:ș&400EA�,B%:eB%=�HA(CB%,0,0,96,120,&2102,FA$,B%):�:
���LA:��
�r�+0:�wA(menu_filename%,64):�wA(menu_val%,16):kB%=&2000:fA%=256:�ZB% kB%,NB% fA%:JC%=0:NB%?0=13::filemenu%=�MA:
Z� 1,"Filename"
d� ....2{64/menu_filename%/}
nPA%=�MA:
�� 1,"Value"
�� ....2{16/menu_val%/}
�toolsmenu%=�MA:
�� 2,"FileTools"
�� ....0{//Add File}
�'� ....1{filelistmenu%//Remove File}
�%WB%=0:RB%=1:sA%=20:PB%=6:RA%=�MA:
� 20,"DataVision"
� .*..3{infoW%//Info}
� ....0{//Create}
"� ....0{//Close File}
,� ....0{//Alter Form}
6� .*..0{//Relations}
@� ....0{//Add}
J� ....0{//Modify}
T� ....0{//Delete}
^� .*..0{//Sort}
h� ....0{//Browse}
r� ....0{//Queries}
|� ....0{//Reports}
�� .*..0{//WordProcess}
�"� ....1{toolsmenu%//FileTools}
�� ....0{//ReportWriter}
�� ....0{//Macros}
�� .*..0{//Import/Export}
�$� ....1{filelistmenu%//FileList}
� � .**.1{filemenu%//FileName}
�� ....0{//Quit}
ֈQA%=0:nA%=1:AB%=2:BB%=3:tA%=4:SA%=5:_A%=6:iA%=7:eA%=8:dA%=9:ZA%=10:IB%=11:gA%=12:WA%=13:rA%=14:xA%=15:VB%=16:jA%=17:lB%=18:VA%=19:�:
���mA:�SC%,wB%,BC%,AC%,UA$:wB%=&C00:�BC% wB%:AC%=BC%:SC%=0:ș&400D9,,ZA$+".!Templates":�:$eC%="*"+�0:ș&400DB,,gC%,AC%,BC%+wB%,-1,eC%,SC%�,,AC%,,,,SC%:�SC%<>0�
RUA$=�NA(eC%):ȎUA$�
f!�"Info":ș&400C1,,gC%�infoW%:
�"�"Dialogue":ș&400C1,,gC%�UC%:
�!�"Confirm":ș&400C1,,gC%�WC%:
�+:�1,"Unknown template '"+UA$+"' found"
��:
��
�/�SC%=0:ș&400DA::DB%=4:pA%=1:XA%=1:wA%=2:�:
���NA(FC%):�FC%>(SB%*YA%)�
��jA:
��
��:
�H��sA(bC%,M%):�X%,Y%,Z%:Z%=�JA(X%,Y%):qA%=bC%:cA%=M%:AA=bC%:�bC%=XC%�
Y%=(sA%+PB%)*32+160:X%-=64:
2�
<ș&400D4,,M%,X%-60,Y%+32:�:
n��WA(gC%):ȎgC%!16�
��KB%:MC%=�:
�
�oA%:�bA:
�
�GB%:�dA:
��&502:�iA:
�zA%:�ZA:
"�:�:
T@��bA:�bC%,mA$,xB%:xB%=0:mA$=�NA(gC%+44):bC%=gC%!40:ȎgC%!20�
��XC%:�gC%!24=eB%�
�
xB%=�:
��
��:�xB%�
��(bC%=lA%)�
�&gC%!16=4:ș&400E7,17,gC%:�BB(mA$):
<�:�1,"Can't load file '"+mA$+"' (Unrecognised Filetype)"
�
&�
0�:
X��dA:磌
l!gC%!12=gC%!8:ș&400E7,19,gC%:
��
��:
�7��iA:gC%!12=gC%!8:gC%!16+=1:IC%=gC%+20:�gC%!36=eB%�
�r�qA("This is the icon for DataVision, the Relational Database"):�qA("Copyright (C) 1990 Silicon Vision Ltd."):
��
!7?IC%=0:!gC%=(IC%+4-gC%)��3:ș&400E7,17,gC%,gC%!4:�:
!H*��qA(hA$):$IC%=hA$+"|M":IC%+=�hA$+2:�:
!�;��fA(mA$):�FC%,QA$,x%,RA$,bC%:x%=�(�PA(mA$+"N")):�x%=0�
!��:
!��
!�C�#x%,QA$:RA$=ZA$+QA$+"."+mA$:�#x%:ș&8,5,RA$�bC%,,,,FC%:�bC%=1�
!�
�NA(FC%):
"�
"�:
"L��ZA:ȎAA�
"`�XC%:�hA(gC%+32):
"�6:�1,"Internal error: Unknown Menu warning issued"
"�'�:ș&400E8,,gC%!20,gC%!24,gC%!28:�:
"���hA(EB%):Ȏ!EB%�
"��lB%:�lA$="*NONE*"�
#�_A(menu_filename%,""):
#�:�_A(menu_filename%,lA$):
#2�
#<6:�1,"Internal error: Unknown Menu warning issued"
#Z�:�:
#�#��FB:�I%,KC%,N%:KC%=�OA:�cC%=0�
#�N%=1:CA$(0)="<No files>":
#�S�:N%=cC%:JA$=lA$:IA$=fA$:MA$=eA$:�I%=1�cC%:�#KC%=(I%-1)*17+4:�#KC%,CA$(I%-1):�:
$,�
$6(�XA(filelistmenu%,N%,CA$()):�#KC%:�:
$r7ݤOA:�C%:C%=�(�PA("NIM2")):�#C%,CA$:cC%=�(CA$):=C%:
$�<ݤCA(fC%,OC%):gC%!0=fC%:gC%!4=OC%:ș&400CE,,gC%:=gC%!28:
% ��_A(aC%,cA$):$aC%=cA$+�0:�:
%�RݤHA(!r%,r%!4,r%!8,r%!12,r%!16,r%!20,dA$,V%):�I%:�(�dA$>11)�((r%!20�&100)<>0)�
%�9r%!20=r%!20�&100:r%!24=�LA(dA$,jB%,pB%):�(r%!20�2)=2�
%�
r%!28=V%:
%��:r%!28=-1:
%��
%�r%!32=�dA$+1:
%��:$(r%+24)=dA$:
&�
&ș&400C2,,r%�I%:=I%:
&p9ݤLA(jA$,B%,�P%):�Q%:Q%=B%+P%:$Q%=jA$:P%+=�jA$+1:=Q%:
&�`ݤMA:�I%,L%,N%,P%,Q%,gC%,kA$,jA$:�N%,jA$:L%=�jA$+1:Q%=ZB%+JC%:JC%+=28+24*N%:gC%=Q%:�JC%>kB%�
'L*�0,"Menu buffer exceeded at '"+jA$+"'"
'V�
'`�jA$=""�
'jQ%!0=0:Q%!4=0:Q%!8=0:
'��:$Q%=�jA$,11):
'��
'�xQ%?12=sB%:Q%?13=dB%:Q%?14=6:Q%?15=0:Q%!20=40:Q%!24=0:Q%+=28:�I%=1�N%:�kA$:�`A(kA$,L%,I%=N%):�:gC%!16=(L%+1)*16:=gC%:
(F���XA(oB%,N%,AA$()):�I%,L%,P%,Q%,kA$,jA$:jA$="Files:":L%=�jA$+1:Q%=oB%:$Q%=�jA$,11):Q%?12=sB%:Q%?13=dB%:Q%?14=6:Q%?15=0:Q%!20=40:Q%!24=0:Q%+=28:�I%=0�N%-1:kA$="....0{//"+AA$(I%)+"}":�`A(kA$,L%,I%=(N%-1)):�:oB%!16=(L%+1)*16:�:
)���`A(kA$,�L%,uB%):�F%,P%,R%,gA$,jA$,iA$:�YB%,XB%,bB%,iB%,bC%:uB%=uB%�&80:YB%=(�kA$,1,1)="*")�1:XB%=(�kA$,2,1)="*")�2:bB%=(�kA$,3,1)="*")�8:iB%=(�kA$,4,1)="*")�(1<<22):bC%=��kA$,5,1):kA$=�kA$,7,�kA$-7):P%=�kA$,"/"):R%=�kA$,"/",P%+1)
)�DgA$=�kA$,1,P%-1):jA$=�kA$,P%+1,R%-P%-1):iA$=�kA$,R%+1):�L%<�iA$�
)�L%=�iA$:
)��
)�:Q%!0=YB%�XB%�bB%�uB%:Q%!4=-1:Q%!8=&06003011�iB%:ȎbC%�
*�0:�AB(iA$):
*D�1:�AB(iA$):Q%!4=�gA$:
*l�2:�VA(gA$,jA$,iA$):
*��3:�AB(iA$):Q%!4=�gA$:
*�!:�1,"Unknown menu item type"
*��:Q%+=24:�:
+!��AB(iA$):�iA$>11�iA$="!!!"�
+ TQ%!8=Q%!8�&100:Q%!12=�LA(iA$,jB%,pB%):E%=(E%+4)�&FFFFFFFC:Q%!16=-1:Q%!20=�iA$+1:
+R�:$(Q%+12)=iA$+�0:
+f�
+p�:
+�2��VA(gA$,jA$,iA$):Q%!0=Q%!0�4:Q%!16=-1:�L%<12�
+�
L%=12:
+��
+�EQ%!8=Q%!8�(1<<8)�(15<<12):Q%!12=�jA$:Q%!16=-1:Q%!20=�gA$:�iA$>""�
,Q%!16=�LA(iA$,ZB%,JC%):
,�
,�:
,B8��EA(M%,O%,W%,B%):M%+=W%+28+O%*24:!M%=!M%�(1<<B%):�:
,�8ݤAA(M%,O%,W%,B%):M%+=W%+28+O%*24:=(!M%�(1<<B%))<>0:
,�8��EB(M%,O%,W%,B%):M%+=W%+28+O%*24:!M%=!M%�(1<<B%):�:
-
9��DB(M%,O%,W%,B%):M%+=W%+28+O%*24:!M%=!M%��(1<<B%):�:
-PG��JA(M%,O%,W%,B%,V%):M%+=W%+28+O%*24:!M%=(!M%��(1<<B%))�(V%<<B%):�:
-�%��wA(�aC%,NC%):�aC% NC%:?aC%=0:�:
-�JݤNA(aC%):�dA$:dA$="":c%=?aC%:ȕc%>=32:dA$+=�c%:aC%+=1:c%=?aC%:�:=dA$:
.^9ݤJA(�X%,�Y%):ș&400CF,,eC%:X%=eC%!0:Y%=eC%!4:=eC%!8:
.�*��yA(H%):ș&400D1,H%,0,-1024,1280,0:�:
.�+��xA:ș&406C2:ș&400DD,TB%,&4B534154:�:
/0E��zA:�#0:!CC%=�:$(CC%+4)=�$+�0:ș&400DF,CC%,1,LA$:ș&400D0,,-1:�:
/����GA(�fC%,aC%,EA$):�_A(aC%,EA$):!gC%=fC%:ș&400CC,,gC%:gC%!76=aC%:gC%!80=-1:gC%!84=128:gC%!60=gC%!60�(1<<8)�1:ș&400C3,,gC%:ș&400C1,,gC%+4�fC%:!gC%=fC%:ș&400C5,,gC%:�:
0>u��BA(�fC%,F%):!gC%=fC%:ș&400CC,,gC%:gC%!32=gC%!32�F%:ș&400C3,,gC%:ș&400C1,,gC%+4�fC%:!gC%=fC%:ș&400C5,,gC%:�:
0�v��HA(�fC%,F%):!gC%=fC%:ș&400CC,,gC%:gC%!32=gC%!32��F%:ș&400C3,,gC%:ș&400C1,,gC%+4�fC%:!gC%=fC%:ș&400C5,,gC%:�:
1.2ݤBA(fC%,QB%):!gC%=fC%:ș&400CC,,gC%:=gC%!QB%:
1tM��DA(DA$):SA$=DA$:�rA(UC%,300,800,400,300,0,0,-1):�pA(UC%):�oA(UC%):�7:�:
1�Y��PA(bC%,aA$):`B%=bC%:SA$=aA$:�rA(WC%,300,800,640,304,0,0,-1):�pA(WC%):�oA(WC%):�7:�:
2FX��FA(fC%,OC%,HC%):gC%!0=fC%:gC%!4=OC%:gC%!8=HC%:gC%!12=HC%:ș&400CD,,gC%:�yA(fC%):�:
2�V��AA(fC%,OC%,HC%):gC%!0=fC%:gC%!4=OC%:gC%!8=0:gC%!12=HC%:ș&400CD,,gC%:�yA(fC%):�:
3"���oA(fC%):�X%,Y%,RC%,QC%:!gC%=fC%:ș&400CB,,gC%:X%=gC%!4:Y%=gC%!8:RC%=gC%!12-X%:QC%=gC%!16-Y%:ȗ�(X%+(RC%>>1)),(Y%+(QC%>>1)):�:
3�v��pA(fC%):�X%,Y%,RC%,QC%:!gC%=fC%:ș&400CB,,gC%:X%=gC%!4:Y%=gC%!8:RC%=gC%!12-X%:QC%=gC%!16-Y%:ȗȓX%,Y%,RC%,QC%:�:
4&��vA:ȗȓ0,0,1280,1024:�:
4bw��IA(fC%):�cB%,qB%,rB%,hB%:!gC%=fC%:ș&400CB,,gC%:cB%=gC%!4:qB%=gC%!8:rB%=gC%!12:hB%=gC%!16:�24,cB%;qB%;rB%;hB%;:�:
4�B��CA(fC%,�X%,�Y%):!gC%=fC%:ș&400CB,,gC%:X%=gC%!4:Y%=gC%!16:�:
5>>ݤIA(XA$):�zB%,gA$:ș&20023,XA$,eC%,&200,0,3�,,zB%:�zB%=0�
5fgA$="":
5p�:gA$=��NA(eC%),zB%):
5��
5� =gA$:
5�.��KA(XA$,NA$):ș&20024,XA$,NA$,�NA$,0,2:�:
5����OA(X%,Y%,cA$,W%,aA%,UB%):�yB%,gB%,VC%,PC%,c%,GC%:eC%!0=164:eC%!4=4:eC%!8=165:eC%!12=5:eC%!16=-1:ș&31,eC%,eC%:yB%=eC%!0<<eC%!4:gB%=eC%!8<<eC%!12:ș&400E6,aA%:ȕcA$<>"":VC%=1:PC%=1:�:c%=��cA$,PC%,1):PC%+=1:�((c%=�(" "))�(c%=-1))�
6�VC%=PC%-2:�(VC%<=0)�
6�
VC%=1:
6��
6��
6�'�((PC%>=W%)�(c%=-1)):GC%=VC%:ȎUB%�
6��UA%:�X%,Y%:
7
#�fB%:�X%+(((W%-GC%)/2)*yB%),Y%:
7�JB%:�X%+((W%-GC%)*yB%),Y%:
72%�:ș&46,cA$,GC%:Y%-=gB%:�(c%=-1)�
7ZcA$="":
7d�:cA$=�cA$,VC%+2):
7x�
7��:�:
7�ݤPA(mA$):=ZA$+"."+mA$:
7�GݤDA(aA$):�KA$,p%:�:KA$=aA$:p%=�aA$,"."):aA$=�aA$,p%+1):�p%=0:=KA$:
8TFݤEA(HA$):?eC%=3:ș&7,14,eC%:ș&C1,eC%,eC%+8,&180,HA$:=�NA(eC%+8):
8�cݤFA(PA$):�I%,L%:eC%?1=13:L%=�(PA$):�I%=1�L%:eC%?I%=�(�PA$,I%,1))�77:�:eC%?(L%+1)=13:=$(eC%+1):
96ݤKA(DC%,NC%):�LC%,F%,hA$:ș&5C,DC%�,LC%:�LC%<NC%�
9D%ș&2002A,DC%,NC%-LC%�;F%:�(F%�1)�
9X
ȎDC%�
9b�0:hA$="System Heap":
9l�1:hA$="RMA":
9v�2:hA$="Screen Size":
9��3:hA$="Sprite Size":
9��4:hA$="Font Cache":
9��5:hA$="RAM Filing System":
9�:hA$="Unknown Area":
9�L�:�1,"Can't set "+hA$+" to required amount ("+�(NC%�1024)+"K is needed)"
9��
9��
9� =LC%:
9����MA:�23,154,255,128,191,160,160,160,160,160,23,159,255,0,255,0,0,0,0,0:�23,158,255,1,253,5,5,5,5,5,23,155,160,160,160,160,160,160,160,160:�23,157,5,5,5,5,5,5,5,5,23,156,160,160,160,160,160,191,128,255
: ��23,160,0,0,0,0,0,255,0,255,23,161,5,5,5,5,5,253,1,255:�23,162,0,0,0,255,255,0,0,0,23,164,24,24,24,24,24,24,24,24:�23,165,255,128,128,128,128,128,128,128,23,166,255,127,127,127,127,127,127,127
:>��23,167,255,254,242,242,242,242,242,254,23,168,192,32,16,8,4,2,1,1:�23,169,128,128,128,191,191,191,191,191,23,170,0,0,0,255,255,255,255,255:�23,171,1,1,1,253,253,253,253,253,23,172,164,170,174,174,174,191,128,255
:\��23,173,136,171,136,174,168,255,0,255,23,174,136,219,216,219,216,255,0,255:�23,175,133,181,133,173,181,253,1,255,23,176,255,0,1,1,1,1,1,0:�23,177,255,0,128,128,128,128,128,0,23,178,255,1,1,1,1,1,1,1
:z��23,179,128,128,128,128,128,128,128,128,23,180,24,24,1,3,7,15,15,7:�23,181,0,0,128,192,224,240,240,224,23,182,1,1,1,1,1,1,1,1:�23,183,128,128,128,128,128,128,128,255,23,184,3,1,0,0,0,0,0,255:�23,185,192,128,0,0,0,0,0,255,23,186,1,1,1,1,1,1,1,255
:���23,187,0,0,0,3,4,8,16,32,23,188,0,0,0,255,0,0,0,0:�23,189,0,0,0,192,32,16,8,4,23,190,64,128,255,128,191,128,191,128:�23,191,0,0,255,0,254,0,254,0,23,192,0,0,255,0,0,0,0,0:�23,193,2,1,255,1,1,1,1,1,23,194,191,128,191,128,128,128,128,255
:���23,195,254,0,254,0,0,0,0,255,23,196,0,0,0,0,0,0,0,255:�23,197,1,37,37,61,37,37,1,255,23,198,191,191,191,191,191,191,128,255:�23,199,255,255,255,255,255,255,0,255,23,200,253,253,253,253,253,253,1,255
:���23,201,170,85,170,85,170,85,170,85,23,202,255,128,132,140,140,132,128,255:�23,203,255,1,17,49,49,17,1,255,23,204,255,128,132,134,134,132,128,255:�23,205,255,1,33,49,49,33,1,255,23,206,255,128,135,135,135,135,128,255
;��23,207,255,1,225,225,225,225,1,255,23,208,255,128,128,131,131,128,128,255:�23,209,255,1,193,193,193,193,1,255,23,210,255,128,129,131,135,143,128,255:�23,211,255,1,129,193,225,241,1,255,23,212,255,128,131,131,131,131,128,255
;$��23,213,255,1,1,193,193,1,1,255,23,214,255,128,136,139,139,136,128,255:�23,215,255,1,17,209,209,17,1,255,23,216,63,32,32,32,32,255,255,255:�23,217,240,16,16,16,16,252,255,252,23,218,15,11,11,8,8,8,8,15
;B��23,219,224,176,144,16,16,16,16,240,23,220,120,72,72,72,120,80,72,68:�23,221,112,120,76,68,68,76,120,112,23,222,0,4,4,244,148,244,132,247:�23,223,240,224,224,144,8,4,2,1,23,224,0,0,0,255,0,0,0,0
;`��23,226,255,1,1,33,97,255,96,32,23,227,0,0,0,255,0,0,0,0:�23,129,170,85,170,85,170,85,170,85,23,228,255,255,0,0,0,0,0,0:�23,229,0,0,0,0,0,0,255,255,23,240,24,24,24,24,24,24,24,24:�23,241,0,0,0,255,0,0,0,0,23,134,0,0,255,126,60,24,0,0
;���23,135,0,0,0,24,24,0,0,0,23,245,255,255,255,129,255,255,255,255:�23,244,255,255,231,195,195,231,255,255,23,246,255,129,255,255,255,255,255,255:�23,247,255,255,255,255,255,255,129,255,23,248,255,129,129,129,129,129,129,255
;���23,249,255,195,195,195,195,195,195,255,23,250,255,243,227,195,195,227,243,255:�23,252,128,192,224,240,240,224,192,128,23,230,0,0,255,0,0,255,0,0:�23,231,36,36,36,36,36,36,36,36,23,232,36,36,231,0,0,231,36,36
;���23,233,255,0,231,36,36,36,36,36,23,234,36,36,36,36,36,231,0,255:�23,235,160,160,191,128,128,191,160,160,23,236,5,5,253,1,1,253,5,5:�23,237,0,1,1,2,130,36,20,8,23,238,0,130,68,40,16,40,68,130
;���23,253,128,128,128,128,128,128,128,255,23,251,24,24,60,24,24,0,60,0:�23,255,0,0,0,0,0,0,0,255,23,202,255,128,128,128,128,128,128,129:�23,203,255,0,0,24,24,126,126,255,23,204,255,1,1,1,1,1,1,129
<