Listing of file='WATALS.BAS;01' on disk='vmedia/analiz_watals-sector.ccvf'
0 PLOT 6,2,12,3,64,0:IF PEEK (32941) > 238GOTO 4800 1 GOTO 4850:REM USE THIS VERSION IF THE BASIC EDITOR IS PRESENT 10 REM C8=nn C9=nn CALL VECTOR FOR SEQFIL,PRINT,GET KEY 20 C6= 154:C7= 130:C5ALL= 33283:POKE C5- 1,195:POKE C5,C6:POKE C5+ 1,C7:REM ANALIZ CALL VECTOR 30 PLOT 3,64,0,27,18,7,6,2,15:REM OUT8,199 60 REM 81 01 06 WATALS FOR DISK BASIC V6 & V8 89 REM ANALIZ FUNCTIONS 90 DEX= 0:KEY= 1:SIM= 2:OSIG= 4:POA= 8:RLTBL= 16:RBL= 32:LVBL= 48:UPPR= 64:LOWR= 128:FSENT= 192 100 TIME= 33209:CY= 33228:CX= 33227:POKE 33289,129:PLOT 27,24 110 QT= 32 130 REM DIMENSION ARRAYS HERE 139 REM DEFAULT VALUES 140 HANG= 0:ECOL= 63:SCOL= 0:LN= 0:XY= 3:PR$= " *> ":APF$= "":APF= 0 150 CO= 7:RC= 1:IC= 2:MC= 3:AC= 5:HC= 6:TC= 7 170 VCADDRESS= 33234:BASFLAG= 33265:CRLF$= CHR$ (13)+ CHR$ (10) 189 REM CLEAR SCREEN FUNCTIONS 190 DEF FN CL(X)= INT (X* 2.02) 200 DEF FN LN(X)= NOT INT (X* 4.1- 128) 240 DEF FN ADDRESS(X)= PEEK (X)+ PEEK (X+ 1)* 256 250 REM LESS #, ETC. DESCRIPTION 290 PLOT 3,64,LN 300 HE$= "UNAV" 350 GOTO 5000 500 REM GET NAME & # 505 PLOT 29,6,TC,15 510 PLOT 3,0,24:PRINT "What is your family / surname?";:APF= 1:GOSUB 700:GOSUB 1000:N$= T$ 515 PLOT 6,TC:PRINT :PRINT "ID Number?";:APF= 1:GOSUB 700:ID$= T$ 520 PLOT 6,TC:PRINT :PRINT "Thank you. What do your friends call you?";:APF= 1:GOSUB 700:GOSUB 1000:FM$= T$ 530 PLOT 6,TC:PRINT :PRINT "Ok, ";FM$;", let's go to work." 535 PLOT 3,64,LN,15,6,TC:T= 1:GOSUB 3100 599 RETURN 700 REM INPUT MANAGER 701 REM OUT 207 UNLOCKS & OUT 199 LOCKS THE KEYBOARD. 720 PLOT 6,IC:IF APF= 1THEN PRINT PR$;:APF= 0 730 TY= PEEK (CY):TX= PEEK (CX):OUT 8,207:INPUT "";T$:IF T$= ""THEN T$= "0":GOTO 790:REM OUT8,199 739 REM NULL INPUT, THEN READ COMPLETE INPUT INCLUDING LEADING SPACES. 740 X= 32839:T$= "" 750 J= PEEK (X):IF J< > 0THEN T$= T$+ CHR$ (J):X= X+ 1:GOTO 750 754 REM CHECK FOR USER COMMANDS. "?" IN FIRST COL. 755 IF CALL (KEY+ RLT)(T$,"?")< > 1THEN T$= ED$:GOTO 790 765 X= CALL (KE+ LO+ RLTBL)(T$,"bye#quit#time#help")AND 255:IF X= 0THEN X= 16 769 REM WHICH COMMAND? 770 X= INT (LOG (X)/ .6931147)+ 1:ON X GOSUB 4900,4900,4500,3055,3055:T$= "0" 790 PLOT 6,TC:RETURN 1000 REM FORM SENTENCE 1010 IF CALL (FSEN)(T$,"")THEN T$= ED$ 1049 RETURN 1100 REM CHANGE TO LOWER CASE 1110 IF CALL (LOWR)(T$,"")THEN T$= ED$ 1149 RETURN 1200 REM CHANGE TO UPPER CASE 1210 IF CALL (UPPR)(T$,"")THEN T$= ED$ 1249 RETURN 1300 REM REMOVE ALL SPACES FROM T$ 1310 IF CALL (RBLNKS)(T$,"")THEN T$= ED$ 1349 RETURN 1400 REM SIMPLE KEY-WORD CHECK 1410 RI= 0:X= CALL (KEY+ UPPR+ RLTBL)(T$,A$)AND 255:REM NORMALIZE TO 8 BITS 1420 IF X> 0 THEN RI= 1 1499 RETURN 1600 REM LOAD VECTOR "P" WITH "NQ" UNIQUE RANDOM NUMBERS 1610 PLOT 3,64,0 1630 J= RND (- PEEK (TIME)) 1650 FOR J= 1TO NQ:P(J)= J:NEXT J 1660 FOR JJ= 1TO NQ 1670 J= RND (1)* NQ+ 1:T= P(JJ):P(JJ)= P(J):P(J)= T 1680 NEXT JJ 1690 RETURN 2100 REM NO FOLD OUTPUT OR PRINT T$ IN THE WINDOW SCOL,ECOL, LN 2101 REM IF HANG = -1 THEN THE CURSOR WILL HANG AFTER THE LAST LINE 2102 REM INPUTS: ECOL=END COLUMN. SCOL=START COL. LN=LINE NUMBER 2105 TX= LEN (T$):IF TX< = ECOL- SCOL THEN X= TX+ 1:GOTO 2130 2115 FOR X= (ECOL- SCOL)+ 1 TO 2 STEP - 1 2120 IF MID$ (T$,X,1)< > " " THEN NEXT X:X= TX+ 1 2129 REM PRINT @ PLOT 3,START COL,LINE # 2130 PLOT 3,SC,LN:PRINT LEFT$ (T$,X- 1);:IF NOT HANG THEN PRINT 2140 LN= LN+ 1:T$= MID$ (T$,X+ 1):IF T$< > "" GOTO 2105 2150 RETURN 3000 REM FOOT 3005 IF FT$= ""THEN FT$= "Press RETURN to continue." 3010 T9= 32- LEN (FT$+ PR$)/ 2 3015 PLOT 15,6,2,XY,0,31,11,XY,T9,31:PRINT FT$; 3020 APF= 1:GOSUB 700 3030 RETURN 3055 IF HE$= "UNAV"THEN PLOT XY,0,31,11,XY,15,31:PRINT "HELP IS UNAVAILABLE";:APF= 1:T= 2:GOSUB 3100:GOTO 3085 3060 X= CALL (KEY+ LOWR+ RBL)(T$,"help"):T$= MID$ (T$,X+ 1) 3065 REM T$ = AREA WHERE HELP HAS BEEN REQUESTED. 3070 REM INSERT YOUR HELP ROUTINES HERE OR GOSUB TO YOUR ROUTINES. 3085 RETURN 3100 REM TIMER ROUTINE 3110 PLOT 3,64,0:T= T+ PEEK (TIME):IF T= > 60 THEN T= T- 59 3120 IF PEEK (TIME)= < T GOTO 3120 3130 RETURN 3200 REM PRINT A SCREEN (PAGE MODE, PLEASE) TO THE PRINTER 3201 REM STARTING @ HOME & ENDING @ THE LAST CURSOR POSITION 3220 POKE C5ALL,C8:POKE C5+ 1,C9:X= CALL (5)("",""):POKE C5,C6:POKE C5+ 1,C7:RETURN 3300 REM GET KEY. X=VALUE OF KEY PRESSED 3320 POKE C5ALL,C8:POKE C5+ 1,C9:X= CALL (6)("",""):POKE C5,C6:POKE C5+ 1,C7:RETURN 3400 REM INITIAL SET UP FOR SEQUENTIAL FILES 3401 REM 0=OPEN FOR I/P, 1=OPEN FOR O/P, 2=GET RECORD W/O CRLF 3402 REM 3=PUT RECORD W/CRLF, 4=CLOSE FILES 3403 REM SYNTAX: X=CALL(N)(N$,BU$(FIL)) WHERE N=CALL VAL. N$=STRING TO TRANSFER, BU$(FIL)= A 255 BYTE FPB 3404 REM IMPORTANT THE STRING ASSIGNED AS BU$(FIL) MUST NOT BE REASSIGNED OR USED. 3405 REM THE FILE THAT IS TO BE OPENED MUST BE IN FIL$(FIL) 3406 REM FIL=FILE #.(1,2,N). ONLY ONE (1) OUTPUT FILE MAY BE OPEN AT ANY ONE TIME. 3410 BUFFR$(0)= " ":FOR X= 1TO 7:BU$(0)= BU$(0)+ BU$(0):NEXT X:BU$(0)= BU$(0)+ LEFT$ (BU$(0),127) 3411 BU$(1)= BU$(0)+ "":BU$(2)= BU$(0)+ "":BU$(3)= BU$(0)+ "":RETURN 3419 REM OPEN THE FILE FIL$ FOR INPUT, BU$(FIL)=FPB & BUFFER 3420 POKE C5+ 1,C9:POKE C5,C8:X= CALL (0)(FIL$(FIL),BU$(FIL)):POKE C5,C6:POKE C5+ 1,C7:RETURN 3429 REM GET A RECORD FROM FIL$, BU$=FPB & BUFFER, T$=THE RECORD 3430 T$= BU$(0)+ "":POKE C5+ 1,C9:POKE C5,C8:X= CALL (2)(T$,BU$(FIL)):POKE C5,C6:POKE C5+ 1,C7:RETURN 3431 REM 12=END OF FILE. BE SURE TO CHECK FOR IT. 3439 REM OPEN THE FILE FIL$(FIL) FOR OUTPUT, B2U$(FI)=FPB & BUFFER 3440 POKE C5+ 1,C9:POKE C5,C8:X= CALL (1)(FIL$(FIL),BU$(FIL)):POKE C5,C6:POKE C5+ 1,C7:RETURN 3449 REM PUT A RECORD TO FIL$(FIL), BU$(FIL)=FPB & BUFFER, T$=THE RECORD 3450 T$= T$+ CR$:POKE C5+ 1,C9:POKE C5,C8:X= CALL (3)(T$,BU$(FIL)):POKE C5,C6:POKE C5+ 1,C7:RETURN 3459 REM CLOSE THE FILE FIL$(FIL), BU$(FIL)=FPB & BUFFER, BU$(FIL)=THE FILE FPB 3460 IF BU$(FIL)THEN POKE C5+ 1,C9:POKE C5,C8:X= CALL (4)(FIL$(FIL),BU$(FIL)):POKE C5,C6:POKE C5+ 1,C7:RETURN 3469 : 3499 RETURN 3500 REM FIND & IN T$ 3510 FOR X= 1TO LEN (A$):IF MID$ (A$,X,1)= "&"THEN A$= LEFT$ (A$,X- 1):GOTO 3549 3520 NEXT X 3549 RETURN 3550 REM FIND # IN A$ 3560 FOR X= 1TO LEN (A$):IF MID$ (A$,X,1)= "#"THEN A$= LEFT$ (A$,X- 1):GOTO 3599 3570 NEXT X 3599 RETURN 3650 REM FIND FIELD POS OF MATCHED STRING. X=VALUE RETURNED BY ANALIZ 3660 X= INT (LOG (X)/ .6931147)+ 1 3699 RETURN 4000 REM C.L.E.F. (C) UNIVERSITY OF WATERLOO, 1980 4020 FILE "TRAP",4199 4030 PLOT 3,64,LN:FILE "R",1,"CLEF",1 4040 CT= 1 4050 FOR I= 1TO 105:GET 1,1,CT;X1,X2,X3,X4,X5:PLOT X1,X2,X3,X4,X5:CT= CT+ 20:NEXT I:GET 1,1,CT;X1:PLOT X1 4170 PLOT 3,9,0:PRINT "Computer-Aided Learning Exercises in French":PLOT 3,64,LN 4185 FILE "C",1:RETURN 4195 RETURN 4199 GOTO 5001:REM GOTO CALLING LINE PLUS ONE. 4200 REM SUBROUTINE TO PLOT HORIZ. BARS TO CLEAR THE SCREEN 4201 REM FROM LN (LINE #) TO THE BOTTOM OF THE SCREEN. 4220 CL= 0:WI= 63:DPTH= 31:T1= 2:CO= 0:GOTO 4240 4229 REM ENTER HERE & RE-DEFINE THE WINDOW TO BE CLEARED & THE COLOUR TO BE USED. 4230 T1= CO:IF CO= 0THEN T1= TC 4240 PLOT 3,64,LN:X= FN CL(CL):Y= FN LN(DP):T3= FN CL(WI+ CL):T2= FN LN(LN) 4250 T5= 1:IF DIR= 1THEN T5= - 1:T= X:X= T3:T3= T:DIR= 0 4260 PLOT 6,CO,2,246,Y 4270 FOR T0= XTO T3STEP T5:PLOT T0,T2:NEXT T0 4280 PLOT 255 4290 PLOT 6,T1:T5= 1:RETURN 4300 REM PLOT VERT. BARS 4320 CL= 0:WI= 63:DPTH= 31:T1= 2:CO= 0:GOTO 4340 4330 T1= CO:IF CO= 0THEN T1= TC 4340 PLOT 3,64,LN:X= FN CL(CL):Y= FN LN(DP):T3= FN CL(WI+ CL):T2= FN LN(LN) 4350 T5= 1:IF DIR= 1THEN T5= - 1:T= Y:Y= T2:T2= T:DIR= 0 4360 PLOT 6,CO,2,250,X 4370 FOR T0= YTO T2STEP T5:PLOT T0,T3:NEXT T0 4380 PLOT 255 4390 PLOT 6,T1:T5= 1:RETURN 4500 REM GET THE CURRENT TIME OF DAY 4525 PLOT 3,64,LN 4530 L2= PEEK (33210):L1= PEEK (33211) 4535 IF L1> 12THEN L1= L1- 12 4540 TI$= RIGHT$ (STR$ (L1+ 100),2)+ ":"+ RIGHT$ (STR$ (L2+ 100),2) 4545 PLOT XY,TX,TY:PRINT TI$:APF= 1:T= 2:GOSUB 3100:PLOT XY,CL,LN:PRINT SPC( LEN (TI$)):RETURN 4600 REM PRINT T$, CENTRED 4620 PLOT 6,MC,XY,FN CTR(CL),LN:PRINT T$:RETURN 4800 REM LOAD SEQFIL/PRINT/GETKEY 4810 POKE 32940,111:POKE 32941,253:CLEAR 2000:C8= 240:C9= 253:REM LOAD ADDR=FD70, CALL=FDF0 4820 PLOT 27,4:PRINT "RUN SEQFIL.PRG":PLOT 27,27 4830 GOTO 10 4849 REM IF FREDI IS PRESENT, USE THIS VERSION 4850 POKE 32940,47:POKE 32941,237:CLEAR 2000:C8= 96:C9= 237:REM LOAD ADDR=ECE0, CALL=ED60 4860 PLOT 27,4:PRINT "RUN SEQFBF.PRG":PLOT 27,27 4870 GOTO 10 4900 REM BYE/QUIT STUB. INSERT YOUR ROUTINE # IN LINE 770 4910 PLOT 12,6,2,14,3,30,16:PRINT "END" 4920 PLOT 3,64,0:GOTO 4920 5000 REM USER DATA STATEMENTS START HERE 5001 : 65301 REM 81 11 29 DATE LAST EDITED CWH