home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 1 / ARM_CLUB_CD.iso / contents / comdemos / progs / datavision / !DataVis / !dv15 (.txt) < prev    next >
Encoding:
RISC OS BBC BASIC V Source  |  1992-09-05  |  32.3 KB  |  2,057 lines

  1.  > $.!DataVis.!dv15
  2. "Wimp_CommandWindow",-1
  3.  180:
  4. :FG%=180
  5. "CLOSE":X=
  6. MyFile("NIM")):
  7. #X,ZZ$,ZZ$,DA$,ZZ$,ZZ$,MD$:
  8. "CLOSE":da$=DA$
  9. :FIL$="Untitled"
  10.      nol%=
  11. :nol%=(nol%/140)-350
  12.  1,"Not enough memory to start ReportWriter"
  13. L$(nol%):
  14. W$(87):
  15. S$(35):
  16. P$(15):PO%=0:MV%=35:E=1730:G=2020:K=2030:H=3100
  17. 'CO$="Untitled":
  18. ME$(13):d$="^##@(*"
  19. O(9):
  20. A(35):
  21. G%(10):
  22. C%(30):ML%=0:GSB%=0:FO%=0:PG%=2:SEG$="312831303130313130313031":PD1=1:e=21500:LO%=
  23. ("2")
  24. W$(I):
  25. "LET","PRINT","IF","ACCEPT","GET",d$,d$,"GOTO",d$,d$,"WHILE","ENDWHILE","OPEN",d$,d$,d$,"FIND","SEEK","ACCEPTDATE","ACCEPTTIME","MODE",d$,d$,d$,d$,"CLS"
  26. "EXIT","SELCLIST","SELLIST","CLIST","LIST",d$,d$,d$,"FIELDS","GETKEY","MENUKEY","SUM","AVG","MAX","MIN",d$,d$,"CDAT","DATC","SUBSTR","SCRNOUT","TRIM","SEG","RSEG","TODAY","NOW",d$
  27.  d$,d$
  28. d$,"POPUP","COLOUR",d$
  29. GNAME:FIL$=
  30. T$,S):
  31. FIL$=""
  32. X,Y);
  33. (154);
  34. (159));
  35. (158):
  36. I=Y+1
  37. Y+L%:
  38. X,I);
  39. (155);
  40. W%," ");
  41. (157):
  42. X,Y+(L%+1));
  43. (156);
  44. (160));
  45. (161):
  46. CONV(V1$,V2%):
  47. (V1$)>V2%
  48. STN$=
  49. V1$,V2%):
  50. STN$=V1$+
  51. (V2%-
  52. (V1$))," ")
  53. GNAME
  54. nol%:L$(I)="":
  55. FIL$:
  56. #X,C$:
  57. "Loading ";FIL$;"...":
  58. nol%:L$(I)="":
  59. (C$):
  60. #X,L$(I):
  61. "Loaded":
  62. 45:*CLOSE
  63. PO%=1:CO$=FIL$:
  64. L=nol%:
  65. PO%=0
  66. L$(L)<>""
  67. L=L-1:
  68. L$(0)=
  69. (L):CO$=FIL$
  70. "Saving ";FIL$;"...":X=
  71. FIL$:
  72. (L$(0)):
  73. #X,L$(I):
  74. "CLOSE":
  75. "Saved":
  76. 0,7);:
  77. ""+T$:
  78. PO%=0
  79. "Current listing of ";CO$;":"':
  80. nol%:
  81. L$(I)<>""
  82. (I);" ";L$(I)
  83. L$(I)<>""
  84. I;"  ";L$(I)
  85. 0,31);"":
  86. L$(I)<>""
  87. I;"  ";L$(I)
  88. I=150
  89. ''':Y=29:
  90. :X=0:Y=3:W%=78:L%=24:
  91. 28,1,27,78,4:
  92. "DataVision Report Writer/Enquiry Language";
  93. (37):
  94. '"Available memory: ";nol%*140;" bytes / ";nol%;" lines free"'
  95.  ">" T$:
  96. T$=""
  97. T$,1)="*"
  98. T$="LIST"
  99. T$="L."
  100. T$="PRINT"
  101. T$="P."
  102. T$,7)="LIST IF"
  103. GNAME:
  104. T$,5)="L. IF"
  105. GNAME:
  106. T$,4)="LOAD"
  107. GNAME:
  108. T$,4)="SAVE"
  109. GNAME:
  110. T$="NEW"
  111. nol%:L$(I)="":
  112. I:PO%=0:CO$="Untitled":
  113. T$="TIME"
  114. T$,5)="TSAVE"
  115. GNAME:
  116. T$,3)="RUN"
  117. GNAME:
  118. T$,4)="QUIT"
  119. T$="nimStop_delg"
  120. T$,6)="INSERT"
  121. GNAME:
  122. T$,6)="DELETE"
  123. GNAME:
  124. T$," "):
  125. T$,(L-1))):
  126. LL>nol% 
  127. "Mistake":
  128. T$,L+1,1):
  129. N$=" "
  130. N$=""
  131. "Bad line":
  132. L$(LL)=
  133. T$,L+1):PO%=1:
  134. (T$):
  135. LL>nol%
  136. 8L$(LL)="":
  137. "Line ";LL;" removed":
  138. "Mistake":
  139. !FIL$=
  140. T$,6):
  141. FIL$=""
  142. FIL$=MD$
  143. 28,1,27,78,4:
  144. "CLOSE":
  145. "Error #222: File '";FIL$;"' not found":
  146. "Error #";
  147. ;": ";
  148. FIL$,","):
  149. JL%=0
  150. LBASE%=
  151. FIL$,JL%-1)):INC%=
  152. FIL$,JL%+1)):
  153. BASE%>=nol% 
  154.  BASE%<1 
  155. I=nol% 
  156. L$(I)=""
  157. X=I+INC%:
  158. X>nol%
  159. "Failed at line ";I:I=1:
  160. I>=BASE%
  161. L$(X)=L$(I):L$(I)="":
  162. :JL%=
  163. L$(X),"GOTO"):
  164. JL%=0
  165. LIN%=
  166. L$(X),JL%+5))
  167. LIN%>=BASE%
  168. L$(X)=
  169. L$(X),JL%+3)+" "+
  170. (LIN%+INC%)
  171. gJL%=
  172. FIL$,","):
  173. JL%=0
  174. BASE%=
  175. FIL$,JL%-1)):INC%=
  176. FIL$,JL%+1)):
  177. INC%>nol% 
  178.  BASE%<1 
  179. BASE%>INC% 
  180. BASE%=1 
  181.  INC%=nol% 
  182. I=BASE%
  183. INC%:L$(I)="":
  184. PO%=0
  185. "Current listing of ";CO$;":"':
  186. nol%:
  187. L$(I)<>""
  188. L$(I),FIL$):
  189. JL%>0
  190. (I);" ";L$(I)
  191.   *** THIS IS THE COMPILER *** BY JONATHAN S. PALMER ***
  192. COMFIL$=FIL$:
  193. PO%=0
  194. "Tokenising ";CO$;"..."
  195. L=nol%
  196. L$(L)<>""
  197. ML%=L:
  198. L=L-1:
  199. CONV(
  200. (I),3):
  201. L$(I)<>""
  202. L$(I)=L$(I)+STN$
  203. LL=1:L=1
  204. L$(L)<>""
  205. L$(LL)=L$(L):LL=LL+1
  206. L=L+1:
  207. L>ML%
  208. ML%=LL-1:
  209. ML%=0
  210. ML%:PLN$=
  211. L$(I),3):
  212. L$(I),5)="GOTO "
  213. L$(I),3)="IF "
  214. L$(I),7)="MENUKEY"
  215. L$(I),6)="GOSUB "
  216. T$="(":T=6:
  217. T$=")":T=7
  218. (L$(I))=T 
  219. 1NO$=
  220. L$(I),T):NO$=
  221. NO$,(
  222. (NO$)-3)):NO%=
  223. (NO$)
  224. NO%<1
  225. NO%>nol%
  226. (PLN$):
  227. 2N1%=
  228. L$(L),3)):
  229. N1%=NO%
  230. L$(I)=T$+
  231. (L)+PLN$:
  232. 'L=L+1:
  233. L>ML%
  234. (PLN$):
  235. @T=1:X=
  236. L$(I),"GOTO "):
  237. T=2:X=
  238. L$(I),"GOSUB "):
  239. #SP$=
  240. L$(I),X-1):L$(I)=
  241. L$(I),X)
  242. D~D:L$(I)=SP$+L$(I):
  243. '"Tokenisation Error at line ";I';"'";L$(I);"'":
  244. '"Tokenisation Error at line ";I';"'";
  245. L$(I),
  246. (L$(I))-3);"'":
  247. CGET(
  248. L$(I),9,
  249. (L$(I))-11)):
  250. (COM%/2-
  251. (COM%/2))>0
  252. PGET(COM%,
  253. L$(I),9,
  254. (L$(I))-11)):
  255. 2:L=1
  256. 3N1%=
  257. L$(L),3)):
  258. (P$(J))
  259. P$(J)=
  260. 'L=L+1:
  261. L>ML%
  262. (PLN$):
  263. PPAD(COM%):L$(I)="E"+
  264. (252)+PAD$+PLN$:
  265. ML%:L$(I)=
  266. L$(I),
  267. (L$(I))-3):
  268. ML%:DB%=0
  269. L$(I),1)="*"
  270. L$(I)=
  271. (251)+L$(I):
  272. L$(I),1)="("
  273. L$(I),1)=")"
  274. L$(I),2)="E"+
  275. (252)
  276. FO%=0:
  277. L$(I),
  278. (W$(F))+1)=W$(F)+" "
  279. FO%=1:O=F:F=59:
  280. L$(I),
  281. (W$(F)))=W$(F)
  282. FO%=2:O=F:F=59
  283. FO%=0
  284. t\D,E,1740,E,1800,1815,1820,1825,1830,1840,0,0,1880,1900,E,E,1920,E,E,1930,1970,1980,1990,E,E,E,2000,2010,0,G,G,G,G,G,G,K,K,H,H,2050,2060,2070,2080,2090,E,3000,3000,E,3020,3030,E
  285. DB%=1
  286. "Tokenisation complete. Saving as ";COMFIL$:
  287. "CLOSE":X=
  288. COMFIL$:
  289. CONV(
  290. (ML%),3):L$(0)=STN$+"*COMPILED*":
  291. #X,L$(I):
  292. "CLOSE":T$="NEW":
  293. FO%=2
  294. (L$(I))=4
  295. L$(I),5):Y=1
  296.  N2$=
  297. N1$,Y,1):
  298. N2$="="
  299. (N1$)
  300. Y=Y+1:
  301. *6N3$=
  302. N1$,Y-1):
  303. N3$,1)="$"
  304. N3$,1)="&"
  305. CONV(N3$,3):N4$=STN$:N5$=
  306. N1$,Y+1):
  307. N5$=""
  308. N4$,1)="$"
  309. L$(I)="!"+N4$+N5$:
  310. SGET:L$(I)="!"+N4$+NA$:
  311. SGET:NA$="":Y=1:X=Y
  312. N5$,X,1)="$"
  313. N5$,X,1)="&"
  314. N5$,X,1)=
  315. Y=Y+1:
  316. (N5$)
  317. N5$,Y,1)=
  318. F!NA$=NA$+
  319. N5$,Y,1):Y=Y+1:
  320. (N5$)
  321. M2Y=Y+1:
  322. N5$,Y,1)="$"
  323. N5$,Y,1)="&"
  324. N5$,Y,1)="$"
  325. TY%=1
  326. TY%=2
  327. WAY=Y+1:N6$=
  328. N5$,Y,2):AS%=
  329. N6$,1)):
  330. AS%<48
  331. AS%>57
  332. Y=Y+1
  333. Y=Y+2
  334. Z#N2%=
  335. (N6$):
  336. N2%<0
  337. N2%>MV%
  338. TY%=1
  339. AS%=N2%+128
  340. AS%=N2%+179
  341. ^"NA$=NA$+
  342. (AS%):
  343. (N5$)
  344. (L$(I))=6
  345. FO%=2
  346. L$(I)=
  347. (34):
  348. L$(I),7,1)="@"
  349. +N5$=
  350. L$(I),7):
  351. N5$=""
  352. L$(I)=
  353. (34):
  354. SGET:L$(I)=
  355. (34)+
  356. (255)+NA$:
  357. GET:N1$=
  358. L$(I),Y,2):
  359. N1$,1)=","
  360. Y=Y+2
  361. Y=Y+3
  362. <N2$=
  363. L$(I),Y,2):
  364. N2$,1))<48
  365. N2$,1))>57
  366. Y=Y+1
  367. Y=Y+2
  368. N1$=""
  369. N2$=""
  370. KN1$=
  371. (N1$)):N2$=
  372. (N2$)):
  373. CONV(N1$,2):N1$=STN$:
  374. CONV(N2$,2):N2$=STN$
  375. EY=8:
  376. GET:N5$=
  377. L$(I),Y):
  378. SGET:L$(I)=
  379. (34)+
  380. (254)+N1$+N2$+NA$:
  381. FO%=2
  382. (L$(I))=3
  383. %N1%=
  384. L$(I)," THEN "):
  385. N1%=0
  386. -N2%=
  387. L$(I),"<>"):
  388. N2%>0
  389. OP%=2:TY%=6:
  390. -N2%=
  391. L$(I),"<="):
  392. N2%>0
  393. OP%=2:TY%=5:
  394. -N2%=
  395. L$(I),">="):
  396. N2%>0
  397. OP%=2:TY%=4:
  398. ,N2%=
  399. L$(I),">"):
  400. N2%>0
  401. OP%=1:TY%=3:
  402. ,N2%=
  403. L$(I),"<"):
  404. N2%>0
  405. OP%=1:TY%=2:
  406. ,N2%=
  407. L$(I),"="):
  408. N2%>0
  409. OP%=1:TY%=1:
  410. IT%=1:TYSAS%=TY%
  411. YN1$=
  412. L$(I),4,N2%-4):N2$=
  413. L$(I),(N2%+OP%),(N1%-N2%)-1):
  414. N2$,1)=" "
  415. (N2$)-1)
  416. N1$=""
  417. N2$=""
  418. (N1$)>29
  419. (N2$)>29
  420. N1$,1)="$"
  421. N1$,1)=
  422. N5$=N1$:
  423. SGET:N1$=NA$:N5$=N2$:
  424. SGET:N2$=NA$:IT%=2:N1$=N1$+
  425. (253):N2$=N2$+
  426. (253):
  427. CONV(N1$,30):DB1$=STN$:
  428. CONV(N2$,30):DB2$=STN$:
  429. CONV(N1$,29):DB1$=STN$:
  430. CONV(N2$,29):DB2$=STN$:
  431. IT%=1
  432. DB1$=DB1$+" ":DB2$=DB2$+" "
  433. HDB$=
  434. L$(I),(N1%+6)):N4$=
  435. L$(I),N1%-1):
  436. DB$,1)="("
  437. DB$,1)=")"
  438. DB$,2)="IF"
  439. DB$,2)="WHILE"
  440. DB$,2)="MENUKEY"
  441. DB%=1:L$(I)=DB$:
  442. DB$=L$(I)
  443. 8L$(I)="#"+
  444. (IT%)+
  445. (TYSAS%)+DB1$+DB2$+DB$:DB%=0:
  446. FO%=2
  447. (L$(I))=7
  448. L$(I),8,1)="@"
  449. 6N3$=
  450. L$(I),8):
  451. N3$,1)="$"
  452. N3$,1)="&"
  453. L$(I)="$"+
  454. (255)+N3$:
  455. "?Y=9:
  456. GET:N3$=
  457. L$(I),Y):
  458. N3$,1)="$"
  459. N3$,1)="&"
  460. '&L$(I)="$"+
  461. (254)+N1$+N2$+N3$:
  462. L$(I),11)="ACCEPTDATE "
  463. O=19:
  464. L$(I),11)="ACCEPTTIME "
  465. O=20:
  466. FO%=2
  467. CGET(
  468. L$(I),5)):
  469. COM%=2
  470. RELE:
  471. PGET(COM%,
  472. L$(I),5)):
  473. PCHK("FX"):
  474. PPAD(2):
  475. COM%=3
  476. RELE:
  477. PGET(COM%,
  478. L$(I),5)):
  479. PCHK("FXY"):
  480. PPAD(3):
  481. L$(I)="%"+PAD$:
  482. FO%=2
  483. (L$(I))=3
  484. RELE:
  485. PGET(2,
  486. L$(I),5)):
  487. PCHK("FX"):
  488. PPAD(2)
  489. L$(I)="&"+PAD$:
  490. L$(I),6)="GETKEY"
  491. FO%=1:
  492. PPAD(PP%):PAD$="":
  493. CONV(P$(J),12):P$(J)=STN$:PAD$=PAD$+P$(J):
  494. RELE:
  495. 15:P$(J)="":
  496. PGET(MP%,PG$):L=1
  497. L=MP%
  498. P$(L)=PG$:
  499. PG$,","):
  500. MF%=0
  501. y3P$(L)=
  502. PG$,(MF%-1)):
  503. P$(L)=""
  504. (P$(L))>12
  505. |!PG$=
  506. PG$,(MF%+1)):L=L+1:
  507. PCHK(PC$)
  508. (PC$):PC1$=
  509. PC$,J,1):PC2%=
  510. P$(J),2)):PC3$=
  511. P$(J),1)
  512. PC1$="F"
  513. PC1$="S"
  514. PC1$="A"
  515. PC1$="X"
  516. PC3$="#"
  517. PC3$<>"#"
  518. PC2%<1
  519. PC2%>999
  520. PC3$<>"$"
  521. PC2%<0
  522. PC2%>MV%
  523. PC3$<>"&"
  524. PC2%<0
  525. PC2%>MV%
  526. PC3$="$"
  527. PC3$="&"
  528. PC2%<0
  529. PC2%>MV%
  530. FO%=2
  531. (L$(I))=5
  532. L$(I),6,1)="@"
  533. $L$(I)="'"+
  534. (255)+
  535. L$(I),6):
  536. 5Y=7:
  537. GET:L$(I)="'"+
  538. (254)+N1$+N2$+
  539. L$(I),Y):
  540. L$(I)=
  541. (O+32):
  542. FO%=2
  543. (L$(I))=6
  544. -N2%=
  545. L$(I),"<>"):
  546. N2%>0
  547. OP%=2:TY%=6:
  548. -N2%=
  549. L$(I),"<="):
  550. N2%>0
  551. OP%=2:TY%=5:
  552. -N2%=
  553. L$(I),">="):
  554. N2%>0
  555. OP%=2:TY%=4:
  556. ,N2%=
  557. L$(I),">"):
  558. N2%>0
  559. OP%=1:TY%=3:
  560. ,N2%=
  561. L$(I),"<"):
  562. N2%>0
  563. OP%=1:TY%=2:
  564. ,N2%=
  565. L$(I),"="):
  566. N2%>0
  567. OP%=1:TY%=1:
  568. nN1%=
  569. (L$(I))+1:IT%=1:N1$=
  570. L$(I),7,N2%-7):N2$=
  571. L$(I),(N2%+OP%),(N1%-N2%)-1):
  572. N2$,1)=" "
  573. (N2$)-1)
  574. N1$=""
  575. N2$=""
  576. (N1$)>29
  577. (N2$)>29
  578. N1$,1)="$"
  579. N1$,1)=
  580. N5$=N1$:
  581. SGET:N1$=NA$:N5$=N2$:
  582. SGET:N2$=NA$:IT%=2:N1$=N1$+
  583. (253):N2$=N2$+
  584. (253):
  585. CONV(N1$,30):DB1$=STN$:
  586. CONV(N2$,30):DB2$=STN$:
  587. CONV(N1$,29):DB1$=STN$:
  588. CONV(N2$,29):DB2$=STN$:
  589. IT%=1
  590. DB1$=DB1$+" ":DB2$=DB2$+" "
  591. +L$(I)="+"+
  592. (IT%)+
  593. (TY%)+DB1$+DB2$:
  594. FO%=2
  595. (L$(I))=5
  596. "Y=6:
  597. FGET:L$(I)="-"+FIL$:
  598. FGET:FIL$=
  599. L$(I),Y):
  600. FIL$=""
  601. (FIL$)>10
  602. FO%=2
  603. (L$(I))=7
  604. L$(I)=":":
  605. "Y=8:
  606. FGET:L$(I)="."+FIL$:
  607. FO%=2
  608. (L$(I))=8
  609. "Y=9:
  610. FGET:L$(I)="/"+FIL$:
  611. FO%=2
  612. (L$(I))=10
  613. ##Y=10:
  614. FGET:L$(I)="0"+FIL$:
  615. FO%=2
  616. (L$(I))=5
  617. RELE:
  618. PGET(3,
  619. L$(I),6)):
  620. PCHK("FXY"):
  621. PPAD(3)
  622. L$(I)="1"+PAD$:
  623. FO%=2
  624. (L$(I))=5
  625. RELE:
  626. PGET(3,
  627. L$(I),6)):
  628. PCHK("FXY"):
  629. PPAD(3)
  630. L$(I)="2"+PAD$:
  631. (L$(I))=11
  632. L$(I),12,1)="@"
  633. B7N3$=
  634. L$(I),12):
  635. N3$,1)="$"
  636. N3$,1)="&"
  637. D"L$(I)=
  638. (O+32)+
  639. (255)+N3$:
  640. N@Y=13:
  641. GET:N3$=
  642. L$(I),Y):
  643. N3$,1)="$"
  644. N3$,1)="&"
  645. S*L$(I)=
  646. (O+32)+
  647. (254)+N1$+N2$+N3$:
  648. FO%=2
  649. L$(I)="5":
  650. ]"Y=6:
  651. FGET:L$(I)="5"+FIL$:
  652. SET$=W$(L)
  653. L=L+1:
  654. L$(I)="5"+
  655. (L-59):
  656. FO%=2
  657. L$(I)="61"
  658. RELE:
  659. PGET(1,
  660. L$(I),8)):
  661. PCHK("Y"):
  662. PPAD(1)
  663. L$(I)="6"+PAD$:
  664. FO%=2
  665. "Y=6:
  666. FGET:L$(I)="9"+FIL$:
  667. FO%=2
  668. (L$(I))=9
  669. CGET(
  670. L$(I),10)):
  671. PGET(COM%,
  672. L$(I),10)):
  673. PCHK(
  674. COM%,"Y")):
  675. PPAD(COM%)
  676. L$(I)="<"+PAD$:
  677. CGET(CG$):CO%=1:COM%=0
  678. 0CO1%=
  679. CG$,",",CO%):
  680. CO1%=0
  681. COM%=COM%+1:
  682.  COM%=COM%+1:CO%=CO1%+1:
  683. COM%>15
  684. FO%=2
  685. (L$(I))=8
  686. CGET(
  687. L$(I),9)):
  688. PGET(COM%,
  689. L$(I),9)):
  690. PCHK(
  691. COM%,"Y")):
  692. PPAD(COM%):L$(I)="="+PAD$:
  693. FO%=2
  694. L$(I)=">":
  695. "Y=7:
  696. FGET:L$(I)=">"+FIL$:
  697. FO%=2
  698. L$(I)="?":
  699. "Y=6:
  700. FGET:L$(I)="?"+FIL$:
  701. FO%=2
  702. (L$(I))=7
  703. FIL$=
  704. L$(I),8)
  705. L$(I)="C"+FIL$:
  706. FO%=2
  707. (L$(I))=7
  708. 4Y=8:
  709. FGET:
  710. FIL$,1)="$"
  711. FIL$,1)="&"
  712. L$(I)="D"+FIL$:
  713. FO%=2
  714. (L$(I))=4
  715. RELE:
  716. PGET(2,
  717. L$(I),5)):
  718. PCHK("FX"):
  719. PPAD(2):L$(I)=
  720. (O+32)+PAD$:
  721. FO%=2
  722. (L$(I))=5
  723. RELE:
  724. PGET(2,
  725. L$(I),6)):
  726. L$(I),4)="DATC"
  727. PCHK("AS")
  728. PCHK("SA")
  729. PPAD(2):L$(I)=
  730. (O+32)+PAD$:
  731. FO%=2
  732. (L$(I))=5
  733. RELE:
  734. PGET(4,
  735. L$(I),6)):
  736. PCHK("AYSY"):
  737. PPAD(4):L$(I)="P"+PAD$:
  738. FO%=2
  739. (L$(I))=4
  740. RELE:
  741. PGET(4,
  742. L$(I),5)):
  743. PCHK("SSYY"):
  744. PPAD(4):L$(I)="Q"+PAD$:
  745. FO%=2
  746. (L$(I))=5
  747. RELE:
  748. PGET(3,
  749. L$(I),6)):
  750. PCHK("SSY"):
  751. PPAD(3):L$(I)="R"+PAD$:
  752. FO%=2
  753. (L$(I))=6
  754. RELE:
  755. PGET(1,
  756. L$(I),7)):
  757. PCHK("S"):
  758. PPAD(1):L$(I)="S"+PAD$:
  759. FO%=2
  760. (L$(I))=4
  761. RELE:
  762. PGET(1,
  763. L$(I),5)):
  764. PCHK("S"):
  765. PPAD(1):L$(I)="T"+PAD$:
  766. L$(I)=
  767. (O+32):
  768. FO%=2
  769. (L$(I))=6
  770. RELE:
  771. PGET(4,
  772. L$(I),7)):
  773. PCHK("YYYY"):
  774. PPAD(4):L$(I)="Y"+PAD$:
  775. FO%=2
  776. (L$(I))=7
  777. "Y=8:
  778. FGET:L$(I)="Z"+FIL$:
  779. FO%=2
  780. (L$(I))=7
  781. RELE:
  782. PGET(3,
  783. L$(I),8)):
  784. PCHK("ASS"):
  785. PPAD(3):L$(I)="N"+PAD$:
  786. FO%=2
  787. (L$(I))=8
  788. CGET(
  789. L$(I),9)):
  790. PGET(COM%,
  791. L$(I),9)):
  792. PCHK(
  793. COM%,"Y")):
  794. PPAD(COM%):L$(I)="O"+PAD$:
  795. FO%=2
  796. (L$(I))=7
  797. L$(I),8):
  798. N5$=""
  799. SGET:L$(I)="X"+NA$:
  800. SELECT:
  801. "FX4,1":ED%=Y+(L%-1):BG%=X+(W%-1):
  802. X,Y+(I-1));"  ";ME$(I):
  803.  XP,YP,BUT:XP=
  804. (XP/16):YP=31-
  805. (YP/32)
  806. BUT=4
  807. YP<Y 
  808.  YP>ED%
  809. XP<X 
  810.  XP>BG%
  811. SEL%=(YP-Y)+1:
  812. ^S%=(
  813. 60:M%=(
  814. 6000)
  815. 60:H%=(
  816. 360000)
  817. 73,0);":";
  818. 76,0);":":
  819. S%<10
  820. 77,0);"0"
  821. M%<10
  822. 74,0);"0"
  823. H%<10
  824. 71,0);"0"
  825. (H%)),0);H%;
  826. (M%)),0);M%;
  827. (S%)),0);S%
  828. "CLOSE":X=
  829. MyFile("NIM")):
  830. #X,ZZ$,ZZ$,DA$,ZZ$,ZZ$,ZZ$:
  831. "CLOSE":
  832. O(9):
  833. L$(150):
  834. S$(35):
  835. A(35):
  836. G%(10):
  837. P$(15):
  838. C%(30):ML%=0:GSB%=0:FO%=0:PG%=2:SEG$="312831303130313130313031"
  839. N%ePD1=1:E=1500:LO%=
  840. ("2"):YEAR=
  841. DA$,7,2)):MONTH=
  842. DA$,4,2)):DAY=
  843. DA$,1,2)):
  844. MONTH<4
  845.  QUARTER=1
  846. MONTH>9
  847. QUARTER=4
  848. MONTH>3
  849. MONTH<7
  850. QUARTER=2
  851. QUARTER=3
  852. CONV(V1$,V2%):
  853. (V1$)>V2%
  854. STN$=
  855. V1$,V2%):
  856. STN$=V1$+
  857. (V2%-
  858. (V1$))," ")
  859. O(5)=1
  860. EL%=39
  861. O(5)=2
  862. EL%=79
  863. O(5)=3
  864. EL%=131
  865. TEXT:
  866. T$="":L=0
  867. X,Y);
  868. (255)
  869. IN=13
  870. IN=127
  871. X,Y);
  872. (IN):T$=T$+
  873. (IN):L=L+1:X=X+1:
  874. X>EL%
  875. X=0:Y=Y+1
  876. X,Y);" ":X=X-1:L=L-1:T$=
  877. T$,L):
  878. X=EL%:Y=Y-1
  879. N$=T$:
  880. X,Y);" ":
  881. 0,7);:
  882. ""+T$:
  883. FO%=0
  884. ERROR("No file open"):
  885. NOR%=0
  886. ERROR("File empty")
  887. A(35)>NOR%
  888. A(35)=0
  889. ERROR("Record control variable out of range")
  890. "CLOSE":
  891. GNAME
  892. FIL$:
  893. #X,L$(0):
  894. L$(0),4)<>"*COMPILED*"
  895. "Not a tokenised program":
  896. UML%=
  897. (L$(0)):
  898. #X,L$(I):
  899. 30:A(I)=0:S$(I)="":
  900. 15:P$(J)="":
  901. "CLOSE":
  902. :O(5)=2:O(2)=1:
  903. ERROR(
  904.     SC%=1
  905.  DB%=0:DA$=da$:
  906. SC%>ML%
  907. FIR$=L$(SC%)
  908. FIR$,1))-32
  909. AS%=219
  910. AS%>37
  911. AS%=AS%-37:
  912.  AS% 
  913.  AS% 
  914.  e,e,e,e,e,e,21640,21655,21795,21800,21815,21830,21840,21845,21850,21855,21860,21860,22245,21875,21880,1625
  915. DB%=1
  916. SC%=SC%+1:
  917. O8)SC%=SC%-1:
  918. ERROR("Program run ended")
  919. L$(SC%),2)
  920. OB"X=
  921. OS$,":"):
  922. ""+OS$:
  923. OS$,X-1):OS$=
  924. OS$,X+1):
  925. OS$=""
  926. ERROR(ER$):
  927. 'ER$;" at line ";SC%;".":I$=
  928. 19,1,24,0,69,200:
  929. nol%:L$(I)="":
  930. I:PO%=0:CO$="Untitled":
  931. VRCHK:
  932. VR%<0
  933. VR%>35
  934. ERROR("Variable number out of range")
  935. FIR$,2,1)="$"
  936. FIR$,3,2)):
  937. VRCHK
  938. FORTRAN(
  939. FIR$,5)):A(VR%)=FT:
  940. FORTRAN(FO$):FT$="":L=1
  941. FO$,L,1)="&"
  942. L=L+1:
  943. FO$,L,1)="$"
  944. L=L+1:
  945. FT$=FT$+
  946. FO$,L,1)
  947. L=L+1:
  948. (FO$)
  949. 8FT1$=
  950. FO$,L,2):
  951. FT1$=""
  952. ERROR("Variable not found")
  953. FT1$,1))<48
  954. FT1$,1))>57
  955.  L=L:
  956. L=L+1
  957. (FT1$)<0
  958. (FT1$)>35
  959. ERROR("Variable number out of range")
  960. FT$=FT$+
  961. (FT1$))):
  962. 8FT1$=
  963. FO$,L,2):
  964. FT1$=""
  965. ERROR("Variable not found")
  966. FT1$,1))<48
  967. FT1$,1))>57
  968.  L=L:FT1$=
  969. FT1$,1):
  970. L=L+1
  971. (FT1$)<0
  972. (FT1$)>35
  973. ERROR("Variable number out of range")
  974. %FT$=FT$+"VAL(S$("+FT1$+"))":
  975. (FT$):
  976. ERROR("Error in formula")
  977. FIR$,3,2)):
  978. VRCHK
  979. SGET2(
  980. FIR$,5)):S$(VR%)=FT$:
  981. SGET2(FO$):FT$="":L=1
  982. FO$,L,1))>127
  983. FT$=FT$+
  984. FO$,L,1)
  985. L=L+1:
  986. (FO$)
  987. FO$,L,1))
  988. (A>=164
  989. A<=178)
  990. (A>=215
  991. A<=255)
  992. A<164
  993. FT$=FT$+S$(A-128):
  994. A<215
  995. FT$=FT$+
  996. (A(A-179)):
  997. FIR$=
  998. FIR$,2,1)=
  999. (254)
  1000. FIR$,3,2)),
  1001. FIR$,5,2)));:
  1002. SGET2(
  1003. FIR$,7)):
  1004. SGET2(
  1005. FIR$,3)):
  1006. STRIM(STM$):
  1007. STM$,I,1)=
  1008. (253)
  1009. STP$=
  1010. STM$,(I-1)):I=1
  1011. P28TY%=
  1012. FIR$,3,1)):DB1$=
  1013. FIR$,4,30):DB2$=
  1014. FIR$,34,30)
  1015. FIR$,2,1)="1"
  1016. FORTRAN(DB1$):DB1=FT:
  1017. FORTRAN(DB2$):DB2=FT:
  1018. STRIM(DB1$):DB1$=STP$:
  1019. STRIM(DB2$):DB2$=STP$:
  1020. SGET2(DB1$):DB1$=FT$:
  1021. SGET2(DB2$):DB2$=FT$
  1022. L$(SC%),2,1)="1"
  1023. COMVAR
  1024. L$(SC%),2,1)="2"
  1025. COMSTR
  1026. PKMFIR2$=L$(SC%):FIR2%=SC%:
  1027. COM%=1
  1028. L$(SC%)=
  1029. L$(SC%),64):
  1030. L$(SC%)=FIR2$:
  1031. DB%=1:
  1032. DB%=0:L$(FIR2%)=FIR2$:
  1033. COMVAR:COM%=0
  1034. TY%=1
  1035. DB1=DB2 
  1036. COM%=1
  1037. TY%=2
  1038. DB1<DB2 
  1039. COM%=1
  1040. TY%=3
  1041. DB1>DB2 
  1042. COM%=1
  1043. TY%=4
  1044. DB1>=DB2 
  1045. COM%=1
  1046. TY%=5
  1047. DB1<=DB2 
  1048. COM%=1
  1049. TY%=6
  1050. DB1<>DB2 
  1051. COM%=1
  1052. COMSTR:COM%=0
  1053. TY%=1
  1054. DB1$=DB2$
  1055. COM%=1
  1056. TY%=2
  1057. DB1$<DB2$
  1058. COM%=1
  1059. TY%=3
  1060. DB1$>DB2$
  1061. COM%=1
  1062. TY%=4
  1063. DB1$>=DB2$
  1064. COM%=1
  1065. TY%=5
  1066. DB1$<=DB2$
  1067. COM%=1
  1068. TY%=6
  1069. DB1$<>DB2$
  1070. COM%=1
  1071. :L=3:
  1072. FIR$,2,1)=
  1073. (254)
  1074. FIR$,3,2)):Y=
  1075. FIR$,5,2)):L=7
  1076. '':Y=29
  1077.  VR%=
  1078. FIR$,(L+1),2)):
  1079. VRCHK
  1080. AY%=0:
  1081. FIR$,L,1)="$"
  1082. AY%=1
  1083. FIR$,L,1)="&"
  1084. AY%=2
  1085. AY%=0
  1086. ERROR("Bad Accept")
  1087. AY%=1
  1088. L%=255:
  1089. L%=18
  1090. TEXT:
  1091. AY%=1
  1092. S$(VR%)=T$
  1093. A(VR%)=
  1094. PGET2:N1%=
  1095. P$(1),2)):VR%=
  1096. P$(2),2)):
  1097. VRCHK
  1098. N1%=0
  1099. N1%>NOF%
  1100. ERROR("Field out of range")
  1101. 9CR%=A(35):
  1102. SO$="1"
  1103. #C=(CR%*REC%)-10:
  1104. #C,N$:CR%=
  1105. #B=(N1%-1)*61+109:
  1106. #B,TI$:
  1107. #C=(CR%-1)*REC%+
  1108. (TI$):
  1109. #C,N$:
  1110. P$(2),1)="&"
  1111.  A(VR%)=
  1112. (N$):
  1113. #B=(N1%-1)*61+104:
  1114. #B,IN$:
  1115. P$(3),1)="L"
  1116. S$(VR%)=
  1117. (IN$)-
  1118. (N$)," ")+N$:
  1119. P$(3),1)="T"
  1120. S$(VR%)=N$+
  1121. (IN$)-
  1122. (N$)," "):
  1123. S$(VR%)=N$:
  1124. FI%=1
  1125. ERROR("File not opened to write to")
  1126. PGET2:N1%=
  1127. P$(1),2)):VR%=
  1128. P$(2),2)):
  1129. VRCHK:
  1130. P$(2),1)="$"
  1131. C$=S$(VR%):
  1132. (A(VR%))
  1133. N1%=0
  1134. N1%>NOF%
  1135. ERROR("Field out of range")
  1136. CR%=A(35)
  1137. #B=(N1%-1)*61+104:
  1138. #B,IN$:
  1139. (C$)>
  1140. (IN$)
  1141. (IN$))
  1142. #B=(N1%-1)*61+109:
  1143. #B,TI$:
  1144. #C=(CR%-1)*REC%+
  1145. (TI$):
  1146. #C,C$:
  1147. PGET2:PG$=
  1148. FIR$,PG%):NP%=
  1149. (PG$)/12
  1150. L=1:J=1
  1151. Q'7P$(L)=
  1152. PG$,J,12):L=L+1:J=J+12:
  1153. (PG$)
  1154. FIR$,2,1)=
  1155. (254)
  1156. FIR$,3,2)),
  1157. FIR$,5,2)));:L=7:
  1158. FIR$,L):
  1159. FIR$,2))-1:
  1160. Q@2GSB%=GSB%+1:
  1161. GSB%>10
  1162. ERROR("Too many GOSUBs")
  1163. QE(G%(GSB%)=SC%:SC%=
  1164. FIR$,2))-1:
  1165. GSB%=0
  1166. ERROR("No GOSUB")
  1167. QO"SC%=G%(GSB%):GSB%=GSB%-1:
  1168. QTzTY%=
  1169. FIR$,3,1)):DB1$=
  1170. FIR$,4,30):DB2$=
  1171. FIR$,34,30):
  1172. FIR$,2,1)="1"
  1173. FORTRAN(DB1$):DB1=FT:
  1174. FORTRAN(DB2$):DB2=FT:
  1175. STRIM(DB1$):DB1$=STM$:
  1176. STRIM(DB2$):DB2$=STM$:
  1177. SGET2(DB1$):DB1$=FT$:
  1178. SGET(DB2$):DB2$=FT$
  1179. FIR$,2,1)="1"
  1180. COMVAR
  1181. FIR$,2,1)="2"
  1182. COMSTR
  1183. COM%=1
  1184. L$(SC%)=","
  1185. Qr;SC%=SC%+1:
  1186. SC%>ML%
  1187. ERROR("No ENDWHILE to match WHILE")
  1188. WH%=1:LO%=SC%-1:
  1189. WH%=0
  1190. ERROR("No WHILE to match ENDWHILE")
  1191. SC%=LO%:
  1192. PGET2:FI$=P$(1):X=
  1193. FI$," "):FI$=
  1194. FI$,X-1):SG$=FI$:
  1195. STGET:FI$=SG$:FO$=FI$+"A":
  1196. "CLOSE":TA$=FI$+"N":
  1197.  "Dir <DataVision$Dir>":N=
  1198. #N,DIR$:
  1199. "CLOSE":
  1200. Dir(DIR$):B=
  1201. FO$:C=
  1202. #B=0:
  1203. #B,ZA$:
  1204. #B=5:
  1205. #B,ZB$:
  1206. #B=15:
  1207. #B,ZC$:
  1208. #B=45:
  1209. #B,SO$:
  1210. (SO$)>0
  1211. SO$="1"
  1212. }FA$=TA$:NOF%=
  1213. (ZA$):NOR%=
  1214. (ZB$):REC%=
  1215. (ZC$):A(35)=1:A(34)=NOR%:FO%=1:MOR%=NOR%+1:
  1216. NOR%=0
  1217. "CLOSE":
  1218. ERROR("File is empty")
  1219. ERROR("Cannot read the file")
  1220. GFIL:
  1221. FIL$:
  1222. #S,V$:
  1223. 0,J);V$:
  1224. GFIL:FIL$=
  1225. FIR$,2):
  1226. FIL$,1)="$"
  1227. FIL$,2)):
  1228. VRCHK:FIL$=S$(VR%)
  1229. STGET:
  1230. SG$,1)="$"
  1231. SG$,2)):
  1232. VRCHK:SG$=S$(VR%)
  1233. mSG$=
  1234. FIR$,2):
  1235. STGET:S=
  1236. #S,L$(0):
  1237. L$(0),4)<>"*COMPILED*"
  1238. ERROR("INSTALLed program is not compiled")
  1239. KML%=
  1240. (L$(0)):
  1241. #S,L$(I):
  1242. F=(ML%+1)
  1243. 150:L$(I)="":
  1244. FIR$,2):
  1245. STGET:
  1246. A(35)=1:
  1247. PGET2:N1%=
  1248. P$(1),2)):VR%=
  1249. P$(2),2)):
  1250. VRCHK:vr%=VR%:
  1251. VGET(P$(3)):VR%=vr%:SRE%=VG%
  1252. N1%=0
  1253. N1%>NOF%
  1254. ERROR("Field out of range")
  1255. SRE%<1 
  1256.  SRE%>NOR%
  1257. SRE%=1
  1258. ML=SRE%:
  1259. #B=(N1%-1)*61+109:
  1260. #B,TI$:
  1261. P$(2),1)="$"
  1262. C$=S$(VR%):
  1263. (A(VR%))
  1264. 5A(35)=L:
  1265. #C=(L-1)*REC%+
  1266. (TI$):
  1267. #C,N$:
  1268. C$=N$
  1269. L=L+1:
  1270. L>NOR%
  1271. A(35)=0:
  1272. A(35)=L:
  1273. O(6)=1
  1274. OUTPUT1:
  1275. OUTPUT2
  1276. A(35)=L:
  1277. O(6)=1
  1278. OUTPUT1:
  1279. OUTPUT2
  1280. A(35)=1:
  1281. PGET2:N1%=
  1282. P$(1),2)):VR%=
  1283. P$(2),2)):
  1284. VRCHK:vr%=VR%:
  1285. VGET(P$(3)):VR%=vr%:SRE%=VG%
  1286. N1%=0
  1287. N1%>NOF%
  1288. ERROR("Field out of range")
  1289. SRE%<1 
  1290.  SRE%>NOR%
  1291. SRE%=1
  1292. R:2L=SRE%:
  1293. P$(2),1)="$"
  1294. C$=S$(VR%):
  1295. (A(VR%))
  1296. R?XA(35)=L:
  1297. #B=(N1%-1)*61+109:
  1298. #B,TI$:
  1299. #C=(L-1)*REC%+
  1300. (TI$):
  1301. #C,N$:X=
  1302. N$,C$):
  1303. L=L+1:
  1304. L>NOR%
  1305. RIJX2=
  1306. :L=3:
  1307. FIR$,2,1)=
  1308. (254)
  1309. FIR$,3,2)):Y2=
  1310. FIR$,5,2)):L=7
  1311. Y2=28
  1312. X,Y);
  1313. 8," ")
  1314. RS6VR%=
  1315. FIR$,(L+1),2)):
  1316. VRCHK:
  1317. TY5:S$(VR%)=N$:
  1318. RXJX2=
  1319. :L=3:
  1320. FIR$,2,1)=
  1321. (254)
  1322. FIR$,3,2)):Y2=
  1323. FIR$,5,2)):L=7
  1324. Y2=28
  1325. X,Y);
  1326. 5," ")
  1327. Rb6VR%=
  1328. FIR$,(L+1),2)):
  1329. VRCHK:
  1330. TY6:S$(VR%)=N$:
  1331. X2,Y2);"../../..":N$=""
  1332. X3=X2:
  1333. Rv'N$=N$+DAT$:X3=X2+3:
  1334. R{/N$=N$+"/"+DAT$+"/":X3=X2+6:
  1335. N$=N$+DAT$
  1336. IN=13
  1337. IN=127
  1338. DE=0:DAT$="":X4=X3
  1339. IN=127
  1340. DE=1:
  1341. IN<48
  1342. IN>57
  1343. 1,-15,100,2:
  1344. X3,Y2);
  1345. (IN):DAT$=DAT$+
  1346. (IN):X3=X3+1:
  1347. X3>(X4+1)
  1348. X2,Y2);"..:..":N$=""
  1349. X3=X2:
  1350. N$=N$+DAT$+":":X3=X2+3:
  1351. N$=N$+DAT$
  1352. IN=13
  1353. IN=127
  1354. 0SET%=
  1355. FIR$,2)):
  1356. SET%=1
  1357. 129:O(5)=1:
  1358. SET%=3
  1359. 16:O(5)=3:
  1360. 15:O(5)=2:
  1361. ERROR("Program run ended with EXIT")
  1362. PGET2:L=1:CR%=A(35):
  1363. SO$="1"
  1364. #C=(CR%*REC%)-10:
  1365. #C,N$:CR%=
  1366. VGET(P$(L)):
  1367. VG%=0
  1368. VG%>NOF%
  1369. ERROR("Field retrieval parameter out of range")
  1370. #B=(VG%-1)*61+109:
  1371. #B,TI$:
  1372. #B=(VG%-1)*61+104:
  1373. #B,IN$:
  1374. #C=(CR%-1)*REC%+
  1375. (TI$):
  1376. #C,N$:
  1377. O(2)=1
  1378. N$=N$+
  1379. (IN$)-
  1380. (N$)," ")+" ":
  1381. O(2)=2
  1382. N$=N$+
  1383. (IN$)-
  1384. (N$)," ")+"|"
  1385. O(2)=0
  1386. N$=N$+" "
  1387. N$;:L=L+1:
  1388. L>NP%
  1389. PGET2:L=1:CR%=A(35):
  1390. SO$="1"
  1391. #C=(CR%*REC%)-10:
  1392. #C,N$:CR%=
  1393. O(2)>0
  1394. "Record               ";A(35)
  1395. VGET(P$(L)):
  1396. VG%=0
  1397. VG%>NOF%
  1398. ERROR("Field retrieval parameter out of range")
  1399. #B=(VG%-1)*61+63:
  1400. #B,FL$:
  1401. #B=(VG%-1)*61+109:
  1402. #B,TI$:
  1403. #B=(VG%-1)*61+104:
  1404. #B,IN$:
  1405. #C=(CR%-1)*REC%+
  1406. (TI$):
  1407. #C,N$
  1408. (FL$));N$:L=L+1:
  1409. L>NP%
  1410. VGET(VG$):
  1411. VG$=""
  1412. VG%=0
  1413. VG$,1)="&"
  1414. VG$,2)):
  1415. VRCHK:VG%=A(VR%):
  1416. VG$,1)="$"
  1417. VG$,2)):
  1418. VRCHK:VG%=
  1419. (S$(VR%)):
  1420. (VG$)
  1421. 9CR%=A(35):
  1422. SO$="1"
  1423. #C=(CR%*REC%)-10:
  1424. #C,N$:CR%=
  1425. aN1$=
  1426. FIR$,1):
  1427. VGET(
  1428. FIR$,2)):
  1429. VG%>NOF%
  1430. VG%<0
  1431. ERROR("Field retrieval parameter out of range")
  1432. VG%=0
  1433. VG%=NOF%
  1434. N1$="?"
  1435. O(2)>0
  1436. "Record               ";A(35)
  1437. N1$=">"
  1438. O(2)>0
  1439. A(35);"|";
  1440. #B=(I-1)*61+109:
  1441. #B,TI$:
  1442. #B=(I-1)*61+104:
  1443. #B,IN$:
  1444. #C=(CR%-1)*REC%+
  1445. (TI$):
  1446. #C,N$:
  1447. #B=(I-1)*61+63:
  1448. #B,FL$:
  1449. N1$=">"
  1450. O(2)=1
  1451. N$=N$+
  1452. (IN$)-
  1453. (N$)," ")+" "
  1454. N1$=">"
  1455. O(2)=2
  1456. N$=N$+
  1457. (IN$)-
  1458. (N$)," ")+"|"
  1459. N1$=">"
  1460. N1$="?"
  1461. (FL$));N$
  1462. FO%=0
  1463. ERROR("No file open"):
  1464. NOR%=0
  1465. ERROR("File empty")
  1466. PGET2:N1%=
  1467. P$(1),2)):VR%=
  1468. P$(2),2)):
  1469. VRCHK:
  1470. N1%=0
  1471. N1%>NOF%
  1472. ERROR("Field out of range")
  1473. /L=1:N1$=
  1474. FIR$,1):
  1475. #B=(N1%-1)*61+109:
  1476. #B,TI$
  1477. 6SU%=0:AVG=SU%:MAX=
  1478. ("-99999999"):MIN=
  1479. ("99999999")
  1480. #C=(L-1)*REC%+
  1481. (TI$):
  1482. #C,C$:N2=
  1483. (C$):SU%=SU%+N2:AVG=SU%:
  1484. N2>MAX 
  1485.  MAX=N2
  1486. N2<MIN 
  1487.  MIN=N2
  1488. L=L+1:
  1489. L>NOR%
  1490. -AVG=(SU%/(L-1)):
  1491. N1$="F"
  1492. A(VR%)=SU%:
  1493. N1$="G"
  1494. A(VR%)=AVG:
  1495. N1$="H"
  1496. A(VR%)=MAX:
  1497. N1$="I"
  1498. A(VR%)=MIN:
  1499. LX=AVG:LS=0:L=1
  1500. #C=(L-1)*REC%+
  1501. (TI$):
  1502. #C,C$:LS=LS+(
  1503. (C$)-LX)^2:L=L+1:
  1504. L>NOR%
  1505. N1$="K"
  1506. A(VR%)=(LS/(L-1)):
  1507. A(VR%)=
  1508. (LS/(L-1)):
  1509. TG&N1$=
  1510. FIR$,2):VR%=
  1511. N1$,2)):
  1512. VRCHK
  1513. N1$,1)="$"
  1514. :S$(VR%)=I$:
  1515. N1$,1)="&"
  1516. :A(VR%)=
  1517. (I$):
  1518. ERROR("Bad GETKEY")
  1519. PG%=3:
  1520. PGET2:PG%=2
  1521. P$(L),1)=I$
  1522. (P$(L+1))-1:
  1523. L=L+2
  1524. (I$)):
  1525. "FX138,0,"+AS$:
  1526. FO%=0
  1527. ERROR("No file open")
  1528. Tt8FIL$=
  1529. FIR$,2):
  1530. FIL$=""
  1531. TF%=NOF%:
  1532. VGET(FIL$):TF%=VG%
  1533. O(2)>0
  1534. #B=(I-1)*61+63:
  1535. #B,FL$:
  1536. #B=(I-1)*61+104:
  1537. #B,IN$:
  1538. (IN$)>=
  1539. (FL$)
  1540. (IN$)-
  1541. (FL$)," ")+" ";:
  1542. FL$+" ";
  1543. PGET2:VR%=
  1544. P$(1),2)):
  1545. VRCHK:DA$=S$(VR%):
  1546. (DA$)<>8
  1547. ERROR("Bad CDAT string")
  1548. DA$,3,1)<>"/")
  1549. DA$,6,1)<>"/")
  1550. ERROR("Bad CDAT string")
  1551. CTOD(DA$):VR%=
  1552. P$(2),2)):
  1553. VRCHK:A(VR%)=PD1:
  1554. PGET2:VR%=
  1555. P$(1),2)):
  1556. VRCHK:DA=A(VR%):
  1557. ERROR("Bad DATC variable")
  1558. 7VR%=
  1559. P$(2),2)):
  1560. VRCHK:
  1561. DTOC(DA):S$(VR%)=P1$:
  1562. CTOD(P1$):P1=
  1563. P1$,1,2)):P2=
  1564. P1$,4,2)):P3=
  1565. P1$,7,2))
  1566. P2>12
  1567. SEG$,(2*P2)-1,2))
  1568.  P1<>29 
  1569.  P2<>2 
  1570.  P3-(
  1571. (P3/4)*4)<>0 
  1572. PD1=P1:
  1573. (P2-1):PD1=PD1+
  1574. SEG$,(2*P4)-1,2)):
  1575.  PD1=PD1+(365*P3)+
  1576. ((P3+3)/4)
  1577. (P3/4)*4 
  1578.  P2>2 
  1579.  PD1=PD1+1
  1580. PD1=-1
  1581. DTOC(PD2)
  1582. (PD2/366):P3=1
  1583. ((P1+3)/4):P4=P1-(P5*4)
  1584. .P2=PD2-(365*P1)-P5:
  1585. P4=0 
  1586.  P5=366 
  1587.  P5=365
  1588. P2>P5 
  1589.  P1=P1+1:
  1590. P2<1 
  1591.  P1=P1-1:
  1592. SEG$,(2*P3)-1,2)):
  1593. P4=0 
  1594.  P5=P5+1
  1595. P2>P5 
  1596.  P3=P3+1:P2=P2-P5:
  1597. $P1$=
  1598. (P2):P1$=
  1599. (P1$),"0")+P1$
  1600. #P2$=
  1601. (P3):
  1602. (P2$)>2
  1603. P2$,2)
  1604. "P1$=P1$+"/"+
  1605. (P2$),"0")+P2$
  1606. #P2$=
  1607. (P1):
  1608. (P2$)>2
  1609. P2$,2)
  1610. "P1$=P1$+"/"+
  1611. (P2$),"0")+P2$
  1612. PD1=PD2
  1613. PGET2:VR%=
  1614. P$(1),2)):
  1615. VRCHK:N1%=VR%:VR%=
  1616. P$(2),2)):
  1617. VRCHK:N2%=VR%:VR%=
  1618. P$(3),2)):
  1619. VRCHK:N3%=VR%:A(N1%)=
  1620. S$(N2%),S$(N3%)):
  1621. 15:P$(J)="":
  1622. PGET2:
  1623. VGET(P$(I)):P$(I)=
  1624. (VG%):
  1625. (P$(1)),
  1626. (P$(2)),
  1627. (P$(3)),
  1628. (P$(4)),
  1629. (P$(5)),
  1630. (P$(6)),
  1631. (P$(7)),
  1632. (P$(8)),
  1633. (P$(9)),
  1634. (P$(10)),
  1635. (P$(11)),
  1636. (P$(12)),
  1637. (P$(13)),
  1638. (P$(14)),
  1639. (P$(15))
  1640. PGET2:VR%=
  1641. P$(1),2)):
  1642. VRCHK:N$=
  1643. (A(VR%)):
  1644. VGET(P$(2)):TRM=VG%:
  1645. TRIM:VR%=
  1646. P$(3),2)):
  1647. VRCHK
  1648. U<;S$(VR%)=N$:LE%=
  1649. (P$(4)):
  1650. P$(4),1)="-"
  1651. P$(4),2))
  1652. LE%=0
  1653. P$(4),1)="-"
  1654. S$(VR%)=
  1655. (S$(VR%))," ")+S$(VR%):
  1656. S$(VR%)=S$(VR%)+
  1657. (S$(VR%))," "):
  1658. PGET2:VR%=
  1659. P$(1),2)):
  1660. VRCHK:VR1%=VR%:VR%=
  1661. P$(2),2)):
  1662. VGET(P$(3)):VG1%=VG%:
  1663. VGET(P$(4)):
  1664. VG%>0
  1665. S$(VR1%)=
  1666. S$(VR%),VG1%,VG%):
  1667. UK!S$(VR1%)=
  1668. S$(VR%),VG1%):
  1669. PGET2:VR%=
  1670. P$(1),2)):
  1671. VRCHK:VR1%=VR%:VR%=
  1672. P$(2),2)):
  1673. VGET(P$(3)):S$(VR1%)=
  1674. S$(VR%),VG%):
  1675. UU,VR%=
  1676. FIR$,3)):
  1677. VRCHK:S$(VR%)=DA$:
  1678. UZ2VR%=
  1679. FIR$,3)):
  1680. VRCHK:S$(VR%)=
  1681. $,17,5):
  1682. 35:A(J)=0:S$(J)=0:
  1683. NOR%:A(35)=I:
  1684. FIR$="V"
  1685. OUTPUT1:
  1686. OUTPUT2:
  1687. I:A(35)=1:
  1688. PGET2:
  1689. VGET(P$(1)):X=VG%:
  1690. VGET(P$(2)):Y=VG%:
  1691. VGET(P$(3)):W%=VG%:
  1692. VGET(P$(4)):L%=VG%:
  1693. PGET2:
  1694. VGET(P$(1)):
  1695. O(5)=2
  1696. VG%>127
  1697. 19,0,VG%,0,0,0:
  1698. ERROR("Bad COLOUR setting")
  1699. FOPOUT
  1700. "CLOSE":X=
  1701.  FO$:POI=(CF%-1)*61+63
  1702. #X=POI:
  1703. #X,FL$
  1704. #X=POI+22:
  1705. #X,ZZ$:X1=
  1706. (ZZ$)
  1707. #X=POI+26:
  1708. #X,ZZ$:Y1=
  1709. (ZZ$)
  1710. #X=POI+30:
  1711. #X,ZZ$:X2=
  1712. (ZZ$)
  1713. #X=POI+34:
  1714. #X,ZZ$:Y2=
  1715. (ZZ$)
  1716. #X=POI+38:
  1717. #X,TY$
  1718. #X=POI+41:
  1719. #X,ZZ$:IN%=
  1720. (ZZ$)
  1721. #X=POI+46:
  1722. #X,ZZ$:TI%=
  1723. (ZZ$)
  1724. #X=POI+54:
  1725. #X,TR$
  1726. #X=POI+58:
  1727. #X,NP$
  1728. X,Y);
  1729. (154);
  1730. (159));
  1731. (158):
  1732. I=Y+1
  1733. Y+L%:
  1734. X,I);
  1735. (155);
  1736. W%," ");
  1737. (157):
  1738. X,Y+(L%+1));
  1739. (156);
  1740. (160));
  1741. (161)
  1742. 6S%=(
  1743. 60:M%=(
  1744. 6000)
  1745. 60:H%=(
  1746. 360000)
  1747. "CLOSE":
  1748. FIR$,1)="@"
  1749. FIR$,1)="A"
  1750. "CLOSE":B=
  1751. FO$:C=
  1752. gSF%=1:SR%=1:
  1753. "FX4,1":
  1754. SO$="1"
  1755. "CLOSE":X=
  1756. #X=23:
  1757. #X,NO$:
  1758. (NO$)-1)*61+63:
  1759. #X,SOL$:
  1760. "CLOSE"
  1761. AF%=1:SL%=71:TU%=9:TF=0
  1762. I=SF%
  1763. SF%+10
  1764. I>NOF%
  1765. C(AF%)=0:SP%=I:TF=1:I=SF%+10:
  1766. CF%=I:
  1767. FOPOUT:
  1768. IN%>70
  1769. IN%>SL%
  1770. C(AF%)=0:SP%=I:TF=1:I=SF%+10:
  1771. $TEN%=IN%:
  1772. (FL$)
  1773. TEN%=
  1774. (FL$)
  1775. V"XTEN%=TEN%+1:C(AF%)=I:C(AF%+10)=TU%:C(AF%+20)=TI%:AF%=AF%+1:SL%=SL%-TEN%:TU%=TU%+TEN%
  1776. SP%=I
  1777. V,+H=0:Y=8:FR%=SR%+19:
  1778. FR%>NOR%
  1779. FR%=NOR%
  1780. 9,4);"File: ";FI$;
  1781. 9,1);"Use keys 
  1782.  to move around database. 'Q' quits this mode.":
  1783. SO$="1"
  1784. 30,4);"(Sorted on ";SOL$;")"
  1785. H=H+1:
  1786. C(H)=0
  1787. "CLOSE":X=
  1788.  FO$:
  1789. #X=(C(H)-1)*61+63:
  1790. #X,FL$:
  1791. #X=(C(H)-1)*61+63+41:
  1792. #X,ZZ$:IN%=
  1793. (ZZ$):TEN%=IN%:
  1794. (FL$)
  1795. TEN%=
  1796. (FL$)
  1797. C(H+10),6);FL$;
  1798. C(H+10),7);
  1799. TEN%,
  1800. (224))
  1801. F=SR%-1:
  1802. "CLOSE":X=
  1803. VO/F=F+1:J=0:
  1804. 0,Y);"00000000";
  1805. (F)),Y);F
  1806. J=J+1:
  1807. C(J)=0
  1808. VY5AF%=F:
  1809. SO$="1"
  1810. #X=(F*REC%)-10:
  1811. #X,AF$:AF%=
  1812. (AF$)
  1813. #X=(AF%-1)*REC%+C(J+20):
  1814. #X,N$:
  1815. C(J+10),Y);N$
  1816. Y=Y+1:
  1817. F=FR%
  1818. FR%=NOR%
  1819. 9,Y);
  1820. (224));
  1821. 9,Y+2);"End of file":
  1822. 2,-15,100,4
  1823. I$="Q"
  1824. "FX4,0":
  1825. FR%=NOR%
  1826. 1,-15,150,2:
  1827. SR%=FR%+1:
  1828. SR%=1
  1829. SR%=SR%-20:
  1830. SP%>NOF%
  1831. SF%=SP%:ST%=C(1):
  1832. SF%=1
  1833. SF%=1:
  1834. 0,0);
  1835. (162));
  1836. 0,22);
  1837. (162)):
  1838. 17,29);"Mode: BROWSE  File: ";FI$;
  1839. 50,29);"Record: ";CR%;"        "
  1840. 71,0);"PAGE";
  1841. 76,0);P%
  1842. 17,24);:
  1843. 202;203;32;32;206;207;32;32;204;205;32;32;208;209;32;32;210;211;32;32;212;213;32;32;214;209;32;32;212;215;32;32;216;217;32;32;218;219;32;32;220;222;32;32;221;222
  1844. X5,26);
  1845. (223)
  1846. SGET2(
  1847. FIR$,2)):
  1848. ""+FT$:
  1849. OUTPUT1
  1850. A(35)>NOR%
  1851. A(35)=0
  1852. ERROR("Record control variable out of range")
  1853. 9CR%=A(35):
  1854. SO$="1"
  1855. #C=(CR%*REC%)-10:
  1856. #C,N$:CR%=
  1857. O(2)>0
  1858. A(35);"|";
  1859. #B=(F-1)*61+109:
  1860. #B,TI$:
  1861. #B=(F-1)*61+104:
  1862. #B,IN$:
  1863. #C=(CR%-1)*REC%+
  1864. (TI$):
  1865. #C,N$:
  1866. O(2)=1
  1867. N$=N$+
  1868. (IN$)-
  1869. (N$)," ")+" ":
  1870. O(2)=2
  1871. N$=N$+
  1872. (IN$)-
  1873. (N$)," ")+"|"
  1874. O(2)=0
  1875. N$=N$+" "
  1876. OUTPUT2
  1877. A(35)>NOR%
  1878. A(35)=0
  1879. ERROR("Record control variable out of range")
  1880. 9CR%=A(35):
  1881. SO$="1"
  1882. #C=(CR%*REC%)-10:
  1883. #C,N$:CR%=
  1884. O(2)>0
  1885. "Record               ";A(35)
  1886. NOF%:
  1887. #B=(F-1)*61+63:
  1888. #B,FL$:
  1889. #B=(F-1)*61+109:
  1890. #B,TI$:
  1891. #B=(F-1)*61+104:
  1892. #B,IN$:
  1893. #C=(CR%-1)*REC%+
  1894. (TI$):
  1895. #C,N$:
  1896. (FL$));N$:
  1897. TRIM:TRN=
  1898. (N$):L=1
  1899. TRM=0
  1900. (TRN)):
  1901. (TRN)
  1902. (TRN))+"."+
  1903. TRM,"0"):
  1904. N$,"."):
  1905. W?@TRM$=
  1906. N$,(L+1),
  1907. (N$)-L):
  1908. (TRM$)>TRM 
  1909.  TRM$=
  1910. TRM$,TRM):
  1911. (TRM$)<TRM 
  1912.  TRM$=TRM$+
  1913. (TRM-
  1914. (TRM$)),"0"):
  1915. N$,L)+TRM$
  1916. WXpSG$=
  1917. FIR$,2):
  1918. STGET:S=
  1919. #S,COR$:X=
  1920. COR$,1,2)):Y=
  1921. COR$,3,2)):W%=
  1922. COR$,5,2))+3:L%=
  1923. COR$,7,2)):
  1924. #S,P$(I):
  1925. #S:X=X+1:Y=Y+1:
  1926. SELECT:AS$=
  1927. P$(SEL%),1))):
  1928. "FX138,0,"+AS$:
  1929. SELECT:
  1930. "FX4,1":ED%=Y+(L%-1):BG%=Y:MX%=0
  1931. "FX4,1":ED%=Y+(L%-1):BG%=Y:MX%=0
  1932. X,Y+(I-1));"   ";
  1933. P$(I),2):
  1934. (P$(I))>MX%
  1935. (P$(I))
  1936. I:SEL%=1
  1937. X,Y);" ";
  1938. (252);" ";
  1939. P$(SEL%),2);
  1940. (P$(SEL%))," "):
  1941. I$=""
  1942. TIME:
  1943. I$="D"
  1944. Y=ED%
  1945. CLEA:Y=Y+1:SEL%=SEL%+1:
  1946. CLEA:
  1947. X,Y);"   ";
  1948. P$(SEL%),2);
  1949. (P$(SEL%))," "):
  1950. Y=BG%
  1951. CLEA:Y=Y-1:SEL%=SEL%-1:
  1952. COMPARE
  1953. COM%=0
  1954. TP$="2"
  1955. N$,1)="*"
  1956. OP$="1"
  1957. N$=C$
  1958. COM%=1:
  1959. OP$="2"
  1960. N$<>C$
  1961. COM%=1:
  1962. OP$="3"
  1963. N$>C$
  1964. COM%=1:
  1965. OP$="4"
  1966. N$<C$
  1967. COM%=1:
  1968. OP$="5"
  1969. N$>=C$
  1970. COM%=1:
  1971. OP$="6"
  1972. N$<=C$
  1973. COM%=1:
  1974. TY$="5"
  1975. X$=C$:
  1976. CONDI
  1977. TY$="6"
  1978. X$=C$:
  1979. CONTI
  1980. OP$="1"
  1981. N=NO 
  1982. COM%=1:
  1983. OP$="2"
  1984. N<>NO 
  1985. COM%=1:
  1986. OP$="3"
  1987. N>NO 
  1988. COM%=1:
  1989. OP$="4"
  1990. N<NO 
  1991. COM%=1:
  1992. OP$="5"
  1993. N>=NO 
  1994. COM%=1:
  1995. OP$="7"
  1996. NO >VL1 
  1997. NO <VL2 
  1998. COM%=1:
  1999. OP$="6"
  2000. N<=NO 
  2001. COM%=1:
  2002. (N$)=1
  2003. OP$="1"
  2004. COM%=
  2005. N$,2,
  2006. (N$))):
  2007. COM%>1
  2008. COM%=1
  2009. (OP$)>1
  2010. COM%=
  2011. N$,2,
  2012. (N$))):
  2013. COM%=0
  2014. COM%=1:
  2015. (OP$)>1
  2016. COM%>0
  2017. COM%=0
  2018. CONDI
  2019. X97XX$="":XX$=XX$+
  2020. X$,7,2)+
  2021. X$,4,2)+
  2022. X$,1,2):NO=
  2023. (XX$)
  2024. CONTI
  2025. XH.XX$="":XX$=XX$+
  2026. X$,4,2)+
  2027. X$,1,2):NO=
  2028. (XX$)
  2029. OUTPUT:B=
  2030. O(7)=0
  2031. A(35)=CR%:TEMP%=CR%:
  2032. OUTPUT1:
  2033. :CR%=TEMP%
  2034. O(7)=1
  2035. A(35)=CR%:TEMP%=CR%:
  2036. OUTPUT2:
  2037. :CR%=TEMP%
  2038. SELECTM:
  2039. "FX4,1":ED%=Y+(L%-1):BG%=X+(W%-1):
  2040. X,Y+(I-1));"  ";P$(I):
  2041.  XP,YP,BUT:XP=
  2042. (XP/16):YP=31-
  2043. (YP/32)
  2044. BUT=4
  2045. YP<Y 
  2046.  YP>ED%
  2047. XP<X 
  2048.  XP>BG%
  2049. SEL%=(YP-Y)+1:
  2050. MyFile(file$)
  2051. ="<DataVision$Dir>."+file$
  2052. UserFile(file$)
  2053. =file$
  2054.  "Wimp_CommandWindow",-1
  2055. Dir(d$)
  2056.  "Dir <DataVision$Dir>"+d$
  2057.