998 POKE53280,14:POKE646,14:POKE53281,6 999 A=A+1:IFA=1THENLOAD"XINOUT.CODE",8,1 1000 REM ************** 1010 REM * XINOUTDEMO * 1020 REM ************** 1030 : 1040 REM * ILLUSTRATES THE ENHANCEMENTS 1050 REM * AND MODIFICATIONS TO THE BASIC 1060 REM * INPUT ROUTINES 1070 : 1080 REM * DECLARE VARIABLES 1090 I=0 : REM COUNTER FOR INPUT 1100 ID=0: REM COUNTER FOR DISPLAY 1110 NU=12 : REM NO. OF 'USING' INPUTS 1115 PU=4 : REM NO. OF 'USING' PAGES 1120 IP=0 : REM COUNTER FOR PRINT USING 1130 NP=10 : REM NO. OF PRINT USING INPUTS 1140 CST=0 : REM COST OF ITEM 1150 TTL=0 : REM TOTAL COST 1170 MAX=0 : REM MAX INPUT COUNTER 1180 MSG$="? FOR HELP" 1200 DIM X(NU),Y(NU) : REM INPUT COORDINATES 1210 DIM PX(NU),PY(NU) : REM PROMPT COORDINATES 1220 DIM PU$(NU) : REM 'USING' PROMPTS 1230 DIM U$(NU) : REM 'USING' MASKS 1240 DIM IU$(PU,NU) : REM 'USING' VARIABLES 1250 DIM IN$(NU) : REM 'USING' IN-STRINGS 1260 DIM QTY(NP),PRICE(NP),CST$(NP) 1270 : 1280 REM * MAIN PROGRAM 1290 SYS 49152 : REM INITIALISE ENHANCEMENT 1300 &END "?[133][134][135][136][137][138][139][140]" 1350 PRINT CHR$(14);CHR$(8) : REM SET CBM MODE 1360 GOSUB 1410 1370 GOSUB 1710 1380 : 1390 END 1400 : 1410 REM * 'USING' DEMO 1430 RESTORE 2460 1440 &FOR X=1 TO NU 1450 READ PX(&X),PY(&X),PU$(&X) 1460 READ X(&X),Y(&X),U$(&X),IN$(&X) 1465 &FOR Y=1 TO PU 1470 IU$(&Y,&X)=&SPC(LEN(U$(&X))) 1490 U$(NU)=&STR$(78,"#") 1500 IU$(&Y,NU)=&SPC(78) 1501 &NEXT Y 1502 &NEXT X 1505 &FOR P=1 TO PU 1510 GOSUB 1610:REM DISPLAY INPUT PAGE 1520 &FOR I=1 TO NU 1530 @ X(&I),Y(&I) : REM POSITION CURSOR 1540 &INT(IN$(&I)) 1550 INPUT USR(U$(&I)),IU$(&P,&I) 1560 &NEXT I : REM UPDATE FIELD 1570 &NEXT P : REM UPDATE PAGE 1580 RETURN 1590 : 1600 REM * DISPLAY INPUT PAGE 1610 PRINT CHR$(147) 1612 MSG$="? FOR HELP:[195][212][210][204] [206](EXT):[195][212][210][204] [208](REVIOUS)" 1614 @ 0,24 MSG$; 1616 @ 30,0 "[208]AGE[146] ";&P 1620 &FOR X=1 TO NU 1630 @ PX(&X),PY(&X) PRINT PU$(&X) 1640 @ X(&X)-1,Y(&X) PRINT ":"; 1650 PRINT IU$(&P,&X); 1660 PRINT ":" 1670 &NEXT X 1680 RETURN 1690 : 1700 REM * PRINT USING DEMO 1710 DEF " ,.\" 1740 FOR I=0 TO NP 1750 READ PRICE(I) 1760 CST$(I)=" 0.00" 1762 QTY(I)=0 1770 NEXT 1790 GOSUB 1940 : REM DISPLAY SCREEN 1800 &LEN(3) VAL"9".0 1810 &FOR I=1 TO NP 1820 @ 10,2*&I INPUT ,QTY(&I) 1830 @ 10,2*&I : USR"###";QTY(&I) 1840 CST=QTY(&I)*PRICE(&I) 1850 CST$(&I)=&USR$("#####.##",CST) 1860 @ 20,2*&I PRINT CST$(&I) 1870 GOSUB 2030 : REM ADJUST TOTAL 1880 @ 18,2*NP+3 PRINT CST$(0) 1890 &NEXT I 1910 RETURN 1920 : 1930 REM * DISPLAY PRINT USING DATA 1940 PRINT CHR$(147) 1941 @ 8,1 "[209]UANT.[160] [195]OST" 1942 FOR ID=1 TO NP 1950 @ 1,ID*2 : USR"##.##";PRICE(ID) 1960 @ 9,ID*2 ":";&USR$("###",QTY(ID));":" 1970 PRINT @ 20,ID*2 CST$(ID) 1980 NEXT 1990 PRINT @ 18,2*NP+3 CST$(0) 2000 RETURN 2010 : 2020 REM * ADJUST PRINT USING TOTALS 2030 TTL=0 2040 &FOR Y=1 TO NP 2050 TTL=TTL+VAL(CST$(&Y)) 2060 &NEXT Y 2070 CST$(0)=&USR$("#######.##",TTL) 2080 RETURN 2090 : 2350 REM * PRINT MESSAGE 2360 @ 0,24 ""+MSG$+"[146]"; 2370 @ 0,0 INPUT, 2380 @ 0,24 &SPC(LEN(MSG$)); 2390 RETURN 2400 : 2410 REM * PRESS RETURN 2420 @ 0,0 INPUT "[208]RESS RETURN ", 2430 RETURN 2440 : 2450 REM * DATA FOR 'USING' DEMO 2460 DATA 1, 1,"[198]ORENAME" ,11, 1,"[193]AAAAAAAAA","" 2470 DATA 1, 2,"[211]URNAME" ,11, 2,"[193]AAAAAAAAAAAAAAA","" 2480 DATA 30, 2,"[211]EX" ,36, 2,"L","01" 2490 DATA 1, 4,"[211]TREET" ,11, 4,"XXXXXAAAAAAAAAAAAAAAA","" 2500 DATA 1, 5,"[212]OWN" ,11, 5,"[193]AAAAAAAAAAAAAAA","" 2510 DATA 1, 6,"[208]OSTCODE" ,11, 6,"[193]XX X[193][193]","" 2520 DATA 1, 8,"[196].[207].[194]" ,11, 8,"99/99/99","" 2530 DATA 1,10,"[200]EIGHT" ,11,10,"9.99","" 2540 DATA 24,10,"[215]EIGHT" ,33,10,"99.99","" 2550 DATA 1,12,"[211]ALARY" ,11,12,"99999","" 2560 DATA 1,14,"[206][201] NUMBER",11,14,"[193][193] 99 99 99 [193]","" 2570 DATA 1,16,"[206]OTES-" , 1,17," ","" 2580 : 2590 REM * PRICE DATA FOR PRINT USING DEMO 2600 DATA 0,1.99,3.99,5.99,7.99,9.99 2610 DATA 11.99,14.99,19.99,21,29