Compucolor.org – Virtual Media

Listing of file='SAMPLE.BAS;02' on disk='vmedia/chip_53-sector.ccvf'

0 REM KY 0 REM           S T A R T  O F  P R O G R A M
1 GOTO 500
100 REM

FIELD HANDLING SUBROUTINE


105 REM  X  = X CO-ORDINATE
110 REM  Y  = Y CO-ORDINATE
115 REM  ML = MAXIMUM INPUT LENGTH
120 REM  NA$= 'N' FOR NUMERIC OR 'A' FOR ALPHANUMERIC
125 REM  KB = KEYBOARD CHARACTER
130 REM  FI$=FINAL STRING
135 REM  SA = SCREEN ADDRESS OF FIELD
140 PO= PEEK (32940)+ PEEK (32941)* 256+ 1:REM  POINT TO PARAMETER PASS AREA
145 SA= 28672+ 128* Y+ X+ X:REM  SCREEN ADDRESS
150 ZZ= INT (SA/ 256):POKE PO+ 3,SA- 256* ZZ:POKE PO+ 4,ZZ
155 SA= SA- 2
160 POKE PO+ 1,ASC (NA$):REM  ALPHANUMERIC OR NUMERIC
165 FI$= ""
170 PLOT 3,X,Y
175 KB= CALL (ML)
180 IF KB= 9OR PEEK (PO)= 0THEN RETURN
185 FOR I= 2TO PEEK (PO)* 2STEP 2
190 FI$= FI$+ CHR$ (PEEK (SA+ I)):NEXT I
195 RETURN
500 REM

PROGRAM INITIALIZATION


520 CLEAR 250
530 PLOT 27,4
540 PRINT "RUN FIELDS"
545 REM
SET UP SCREEN

550 PLOT 27,27,27,24
560 PLOT  12,3,5,1,14
570 PRINT "SAMPLE PROGRAM TO DEMONSTRATE THE USE OF 'FIELDS'"
580 PLOT 3,0,5,11,3,5,5,15
590 INPUT  "ENTER 'I' TO INSERT OR 'U' TO UPDATE ";A$
600 IF A$< > "I"AND A$< > "U"GOTO 580
610 PRINT "________________________________________________________________"
620 FOR I= 1TO 20:PLOT 10,11:NEXT I
630 PLOT 3,1,10:PRINT  "NAME"
640 PLOT 3,1,13:PRINT "ADDRESS"
650 PLOT  3,1,16:PRINT "MONEY OWING"
660 PLOT 3,1,19:PRINT "DESCRIPTION
670 IF A$= "U"GOTO 730
680 PLOT 3,14,10:PRINT "            "
690 PLOT 3,14,13:PRINT "                 "
700 PLOT 3,14,16:PRINT "       "
710 PLOT 3,14,19:PRINT "       "
720 GOTO 770
730 PLOT 3,14,10:PRINT "BERNIE RAFFE"
740 PLOT 3,14,13:PRINT "HARROW , ENGLAND "
750 PLOT 3,14,16:PRINT "534.43-"
760 PLOT 3,14,19:PRINT "AVERAGE"
770 PLOT 3,0,22
780 PRINT "SUMMARY OF FACILITIES:-"
790 PLOT 3,0,24
800 PRINT "  1) CONTROL CHARACTERS & CURSOR POSITIONING KEYS (EXCEPT"
810 PRINT "     LEFT & RIGHT CURSOR) ARE DISABLED."
820 PRINT "  2) CURSOR WILL NOT TRAVEL OUT OF A FIELD"
830 PRINT "  3) FINAL FIELD VALUE DEPENDS ON CONTENT OF FIELD ON THE"
840 PRINT "     SCREEN & NOT ON THE ACTUAL KEY DEPRESSIONS"
850 PRINT "  4) 'DELETE/INSERT CHAR' & 'DELETE LINE' WORK WITHIN AFIELD"
860 PRINT "  5) ALPHABETIC CHARACTERS ARE DISABLED IN NUMERIC FIELDS"
870 PRINT "  6) THE 'TAB' KEY RETURNS CURSOR TO THE PREVIOUS FIELD"
875 REM

GET EACH FIELD


880 X= 14:Y= 10:ML= 12:NA$= "A"
890 PLOT 6,38
900 GOSUB 100
910 IF KB= 9GOTO 900
920 GOSUB 1200
930 X= 14:Y= 13:ML= 17:NA$= "A"
940 PLOT 6,38
950 GOSUB 100
960 IF KB= 9GOTO 880
970 GOSUB 1200
980 X= 14:Y= 16:ML= 7:NA$= "N"
990 PLOT 6,38
1000 GOSUB 100
1010 IF KB= 9GOTO 930
1020 GOSUB 1200
1030 X= 14:Y= 19:ML= 7:NA$= "A"
1040 PLOT 6,38
1050 GOSUB 100
1060 IF KB= 9GOTO 980
1070 GOSUB 1200
1080 PLOT 3,15,21:INPUT "HIT RETURN FOR ANOTHER GO ";A$
1085 REM
CLEAR SCREEN AND DO IT AGAIN

1090 PLOT 3,0,8:FOR I= 1TO 23:PLOT 10,11:NEXT I
1100 GOTO 580
1200 REM

FIELD PROCESSING ROUTINE. THIS JUST PRINTS VALUE;
REAL PROGRAM WOULD PROCESS FIELD HERE
1210 PLOT 6,2,3,33,Y:PRINT "";FI$;" (";LEN (FI$);")";"    "
1220 RETURN