Re: It is tokenized

by (Login MCalkins)
Moderator

You needed to go into gwbasic, type:
load "condform.bas"
save "condform.txt", a

Regards,
Michael


10 REM ===== THIS PROGRAM MUST BE IMPLEMENTED ON A SYSTEM THAT ACCEPTS A
20 REM ===== STATEMENT THAT READS A CHARACTER FROM THE KEYBOARD WHITHOUT
30 REM ===== INTERRUPTING THE PROGRAM (E.G. INKEY$).
40 GOSUB 1290
50 REM ===== CLEAR THE SCREEN
60 PRINT "*** DIALOG SUPPORT SYSTEM ***"
70 PRINT "COPYRIGHT DAVID STODOLSKY, 1986"
80 PRINT
90 PRINT "PRESS RETURN FOR INSTRUCTIONS"
100 INPUT Z$
110 GOSUB 1290
120 GOSUB 1340
130 DIM N6$(20)
140 DIM G$(30)
150 DIM U(20)
160 DIM Q(20)
170 FOR I = 0 TO 26
180     READ G$(I)
190 NEXT I
200 LET P = 36
210 PRINT "PROGRAM LOOPS PER SECOND SET TO "; P
220 GOTO 280
230 LET S7 = S7 + 1
240 LET S1 = S7 / P
250 LET C = S1
260 REM ----- C = CURRENT TIME
270 RETURN
280 REM ===== INITIALIZATION ==================================
290 PRINT "TURN LIMIT (SEC.)";
300 INPUT T
310 REM ----- T = TURN LIMIT
320 PRINT "DISCUSSION LIMIT (MIN.)";
330 INPUT D
340 LET D = D * 60
350 REM ----- D = DISCUSSION LIMIT
360 PRINT "NUMBER OF PEOPLE";
370 INPUT N2
380 FOR N1 = 1 TO N2
390     PRINT "NAME "; G$(N1)
400     INPUT N6$(N1)
410 NEXT N1
420 PRINT "IF A PERSON GETS INTERRUPTED, SHALL HE OR SHE"
430 PRINT "BE REMOVED FROM THE QUEUE? (Y/N) ";
440 INPUT P$
450 IF P$ = "Y" THEN 510
460 IF P$ = "y" THEN 510
470 IF P$ = "n" THEN 510
480 PRINT
490 IF P$ = "N" THEN 510
500 GOTO 420
510 GOSUB 1290
520 PRINT D/60;" MIN.CONFERENCE. ";T;" SEC. TURNS."
530 GOSUB 580
540 PRINT "TIME IS UP. ************"
550 BEEP
560 BEEP
570 END
580 REM ================================================  DIALOG SUBRUTINE
590 GOSUB 230
600 REM ----- E IS THE END OF DISCUSSION TIME
610 LET E = C + D
620 GOSUB 230
630 PRINT "DISCUSSION TIME LEFT ";INT(E - C);" SECONDS."
640 GOSUB 670
650 IF C < E THEN 620
660 RETURN
670 REM ================================================  SELECT SUBRUTINE
680 GOSUB 1120
690 GOSUB 230
700 IF R=0 THEN 750
710 REM ----- R = RESPONSE, 1-9 = REQUEST, 0 = RELEASE
720 IF C < N THEN 680
730 REM ----- N = END OF TURN LIMIT
740 REM ----- U IS TIME USED
750 LET U(S9) = U(S9) + C - S
760 REM ----- S IS START TIME
770 REM ----- M IS THE MINIMUM ELAPSED TIME
780 LET M = 10 ^ 37
790 LET N = C
800 LET G1 = 0
810 LET L = S9
820 LET S9 = N2 + 1
830 FOR F = 1 TO N2
840     IF Q(F) = 0 THEN 910
850     IF U(F) > M THEN 910
860     LET G1 = 1
870     LET M = U(F)
880     LET N = C + T
890     LET S9 = F
900     LET X$ = N6$(S9)
910 NEXT F
920 IF G1 = 0 THEN GOTO 1070
930 PRINT "CURRENT SPEAKER IS ";X$
940 LET R = S9
950 LET S = C
960 IF L = S9 THEN GOTO 1060
970 IF P$ = "N" THEN 1010
980 IF P$ = "n" THEN 1010
990 LET Q(L) = 0
1000 REM ----- 920-950 IS ADEQUATE FOR PRODUCING BEEPS ON SOME MACHINES
1010 REM ----- LET S8 = -16336
1020 REM ----- FOR A = 1 TO 5
1030 REM ----- LET B = PEEK (S8) - PEEK (S8) + PEEK (S8) - PEEK (S8)
1040 REM ----- NEXT A
1050 BEEP
1060 RETURN
1070 PRINT "WAITING FOR A NEW SPEAKER"
1080 GOTO 950
1090 REM ================================================  DISPLAY SUBRUTINE
1100 PRINT W$
1110 RETURN
1120 REM ===============================================  COLLECT SUBRUTINE
1130 LET W$ = "ENTER REQUEST"
1140 LET L$ = INKEY$
1150 IF L$ = "" THEN 1260
1160 FOR I = 0 TO 9
1170     IF L$ = G$(I) THEN GOTO 1270
1180 NEXT I
1190 REM ----- SPEAKER INDICATES END
1200 IF R = 0 THEN 1230
1210 LET Q(R) = 1
1220 GOTO 1240
1230 LET Q(S9) = 0
1240 LET W$ = N6$(R)
1250 GOSUB 1090
1260 RETURN
1270 LET R = I
1280 GOTO 1190
1290 REM ================================================  CLEAR THE SCREEN SUB
1300 FOR I = 1 TO 24
1310     PRINT
1320 NEXT I
1330 RETURN
1340 REM ===============================================  INSTRUCTIONS
1350 PRINT "THIS PROGRAM MEDIATES DIALOG"
1360 PRINT "BY RESOLVING CONFLICTING REQUESTS"
1370 PRINT "TO SPEAK IN FAVOR OF THE PERSON"
1380 PRINT "WHO HAS THUS FAR SPOKEN THE LEAST."
1390 PRINT "ASSIGN EACH PERSON A CARD"
1400 PRINT "LETTERED A THROUGH Z."
1410 PRINT "ENTER THE LETTER WHEN THEY"
1420 PRINT "HOLD UP THE CARD."
1430 PRINT
1440 PRINT "                   PRESS RETURN FOR MORE."
1450 INPUT Z$
1460 GOSUB 1290
1470 PRINT " WHEN THE PERSON FINISHES "
1480 PRINT "ENTER A ZERO AND THE NAME"
1490 PRINT "OF THE NEXT SPEAKER WILL"
1500 PRINT "APPEAR."
1510 PRINT
1520 PRINT " THE PROGRAM WILL ASK FOR THE"
1530 PRINT "NUMBER OF SECONDS EACH TURN WILL "
1540 PRINT "BE LIMITED TO, THE TIME LIMIT"
1550 PRINT "FOR THE DISCUSSION IN MINUTES,"
1560 PRINT "AND THE NUMBER OF SPEAKERS."
1570 PRINT "AFTER THE NAMES HAVE BEEN"
1580 PRINT "ENTERED THE PROGRAM WILL START."
1590 PRINT "                   PRESS RETURN FOR MORE."
1600 INPUT Z$
1610 GOSUB 1290
1620 PRINT "WHEN THE TIME RUNS OUT"
1630 PRINT "THE PROGRAM TERMINATES!"
1640 PRINT
1650 PRINT "PRESS RETURN TO START"
1660 INPUT Z$
1670 RETURN
1680 DATA 0,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
1690 REM ===============================================  VARIABLE NAMES
1700 REM   C     CURRENT TIME
1710 REM   D     DISCUSSION LIMIT
1720 REM   E     END OF DISCUSSION TIME
1730 REM   F     A COUNTER
1740 REM   G1    IF G1 = 0 THEN OUTPUT IS "WAITING FOR A NEW SPEAKER"
1750 REM         IF G1 = 1 THEN OUTPUT IS "CURRENT SPEAKER IS"...
1760 REM   I     A COUNTER
1770 REM   L     THE NUMBER OF THE PERSON WHO IS SPEAKING
1780 REM   L$    THE CHARACTER THAT IS RETURNED BY INKEY$
1790 REM   M     THE MINIMUM ELAPSED TIME
1800 REM   N     END OF TURN LIMIT (C + T)
1810 REM   N1    A COUNTER
1820 REM   N2    NUMBER OF PEOPLE
1830 REM   N6$   AN ARRAY WITH NAMES OF PERSONS IN THE DISCUSSION
1840 REM   P$    CAN BE "Y" OR "N". DETERMINES IF A PERSON WHO IS
1850 REM         INTERUPTED GETS THROWN OUT OF THE QUE
1860 REM   Q     REQUEST TO SPEAK. IN Q(N) IS A NUMBER THAT SIGNIFIES
1870 REM         IF PERSON N WANTS TO SPEAK (1) OR WANTS TO FINISH
1880 REM         SPEAKING (0).
1890 REM   R     RESPONSE (1-9 = REQUEST, 0 = RELEASE)
1900 REM   S     START TIME
1910 REM   S1    HAS TO DO WITH THE "CLOCK"
1920 REM   S7    HAS ALSO TO DO WITH THE "CLOCK"
1930 REM   S9    THE NUMBER OF THE PERSON WHO HAS THUS FAR SPOKEN THE
1940 REM         LEAST OF THE PERSON WHO WANTS TO SPEAK
1950 REM   T     TURN LIMIT
1960 REM   U     IN U(N) IS THE TIME PERSON N HAS USED
1970 REM   W$    TEXT THAT SHALL BE PRINTED ON THE SCREEN
1980 REM   X$    THE NAME OF THE CURRENT SPEAKER
1990 REM   Z$    INPUT OF RETURN
2000 REM ===============================================  SUBROUTINE LOCATIONS
2010 REM  580 - 660  DIALOG SUBROUTINE
2020 REM  670 - 1080 SELECT SUBROUTINE
2030 REM 1090 - 1110 DISPLAY SUBROUTINE
2040 REM 1120 - 1280 COLLECT SUBROUTINE
2050 REM 1290 - 1330 CLEAR THE SCREEN SUBROUTINE
2060 REM 1340 - 1680 INSTRUCTIONS
2070 REM 1690 - 1990 VARIABLE NAMES
2080 REM 2000 - 2080 SUBROUTINE LOCATIONS

Posted on Nov 11, 2011, 5:59 AM

Respond to this message   

Return to Index


Response TitleAuthor and Date
thanks on Nov 11
 *yw. on Nov 11