100 ! FILE NAME: ESCDEMO-BSC.BAS ! AUTHOR: R.W.MCDOUGALL ! CREATION DATE: 11/11/86 ! REVISION DATE: 11/16/86 RWM added string -> numeric conversion ! LOCATION: HSTC ! MAIN FRAME: VAX 11/780 ! SYSTEM: VAX/VMS V4.4 ! LANGUAGE: VAX-11 BASIC V2.4 ! DESCRIPTION: Demo of BASIC disk I/O, screen I/O and looping ! --------------------------------------------------------------------- 101 MARGIN 80 110 TOP_LIN$ = "lqqqqqqwqqqqqqqqqqwqqqqqqqqwqqqqqqqqqq" 120 TOP_LIN$ = TOP_LIN$ + "qqqqqqqqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqk" 130 BLN_LIN$ = "x x x x " 140 BLN_LIN$ = BLN_LIN$ + " x x" 150 MID_LIN$ = "tqqqqqqnqqqqqqqqqqnqqqqqqqqnqqqqqqqqqq" 160 MID_LIN$ = MID_LIN$ +"qqqqqqqqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqu" 170 BOT_LIN$ = "mqqqqqqvqqqqqqqqqqvqqqqqqqqvqqqqqqqqqq" 180 BOT_LIN$ = BOT_LIN$ + "qqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqj" 190 DIV_LIN$ = "________________________________________" 200 DIV_LIN$ = DIV_LIN$ + "________________________________________" 210 HLINE1$ = "Ord Shpd Cost Description Amount" 220 HLINE2$ = "---- -------- ------ ----------------- ------" 230 OPEN "ESCDEMO-BSC.DAT" FOR INPUT AS FILE #1% 240 OPEN "ESCDEMO-BSC.OUT" FOR OUTPUT AS FILE #2% 250 OPEN "TT:" FOR INPUT AS FILE #3% 260 PRINT CHR$(155%);"[2J" !clear entire screen 270 PRINT CHR$(155%);")0" !enable graphics mode 280 PRINT CHR$(155%);"[7;0H";CHR$(14%);TOP_LIN$ 290 PRINT BLN_LIN$ 300 PRINT MID_LIN$ 310 FOR I% = 1% TO 9% 320 PRINT BLN_LIN$ 330 NEXT I% 340 PRINT BOT_LIN$;CHR$(15%) 350 PRINT CHR$(155%);"[9;3H";"Ord" 360 PRINT CHR$(155%);"[9;10H";"Shpd" 370 PRINT CHR$(155%);"[9;21H";"Cost" 380 PRINT CHR$(155%);"[9;30H";"Description" 390 PRINT CHR$(155%);"[9;63H";"Amount" 400 PRINT CHR$(155%);"[3;1H";DIV_LIN$ 410 PRINT CHR$(155%);"[3;10H";"ENTER ORDER NUMBER ---" 420 PASS% = 1% 430 IF PASS% = 1% THEN 460 440 PRINT CHR$(155%);"[6;10H";"Order number must be [100-999]." 450 PRINT CHR$(155%);"[3;30H";"--- " 460 PRINT CHR$(155%);"[3;29H";" "; 470 INPUT #3%, ONUM$ !input from channel to supress prompt 471 FOR I = 1 TO LEN(ONUM$) 472 ASCV= ASCII(MID(ONUM$,I,1)) 473 IF ASCV<48 OR ASCV>57 THEN ONUM$ = "0" 478 NEXT I 479 ONUM = VAL(ONUM$) 480 PASS% = 2% 490 IF ONUM < 100 OR ONUM > 999 THEN 430 500 PRINT CHR$(155%);"[6;10H";" " 510 LINPUT #1%, ILINE$ 520 ODAT$ = MID$(ILINE$,1,8) 530 OCST$ = MID$(ILINE$,9,6) 540 ODES$ = MID$(ILINE$,15,17) 550 OAMT$ = MID$(ILINE$,32,6) 560 PRINT CHR$(155%);"[11;3H";NUM1$(ONUM) !eliminate sign space 570 PRINT CHR$(155%);"[11;10H";ODAT$ 580 PRINT CHR$(155%);"[11;21H";OCST$ 590 PRINT CHR$(155%);"[11;30H";ODES$ 600 PRINT CHR$(155%);"[11;63H";OAMT$ 610 PRINT CHR$(155%);"[21;0H"; 620 PRINT #2%, HLINE1$ 630 PRINT #2%, HLINE2$ 640 PRINT #2%, NUM1$(ONUM); 650 PRINT #2%, TAB(6);ODAT$; 660 PRINT #2%, TAB(16);OCST$; 670 PRINT #2%, TAB(24);ODES$; 680 PRINT #2%, TAB(43);OAMT$; 690 CLOSE #1%, #2%, #3% 700 END