1 ! FILE NAME: ESCDEMO-BAS.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 ! --------------------------------------------------------------------- DEF FNP$(Y,X) = ESC+"["+NUM1$(Y)+";"+NUM1$(X)+"H" TOP_LIN$ = "lqqqqqqwqqqqqqqqqqwqqqqqqqqwqqqqqqqqqq" + & "qqqqqqqqqqqqqqqqqqqqqqwqqqqqqqqqqqqqqk" BLN_LIN$ = "x x x x " + & " x x" MID_LIN$ = "tqqqqqqnqqqqqqqqqqnqqqqqqqqnqqqqqqqqqq" + & "qqqqqqqqqqqqqqqqqqqqqqnqqqqqqqqqqqqqqu" BOT_LIN$ = "mqqqqqqvqqqqqqqqqqvqqqqqqqqvqqqqqqqqqq" + & "qqqqqqqqqqqqqqqqqqqqqqvqqqqqqqqqqqqqqj" DIV_LIN$ = "________________________________________" + & "________________________________________" HLINE1$ = "Ord Shpd Cost Description Amount" HLINE2$ = "---- -------- ------ ----------------- ------" OPEN "ESCDEMO-BAS.DAT" FOR INPUT AS FILE #1% OPEN "ESCDEMO-BAS.OUT" FOR OUTPUT AS FILE #2% OPEN "TT:" FOR INPUT AS FILE #3% PRINT ESC;"[2J" !clear entire screen PRINT ESC;")0" !enable graphics mode PRINT FNP$(8,0);SO;TOP_LIN$ PRINT BLN_LIN$ PRINT MID_LIN$ PRINT BLN_LIN$ FOR I = 1 TO 9 PRINT BOT_LIN$;SI PRINT FNP$(9,3);"Ord" PRINT FNP$(9,10);"Shpd" PRINT FNP$(9,21);"Cost" PRINT FNP$(9,30);"Description" PRINT FNP$(9,63);"Amount" PRINT FNP$(4,1);DIV_LIN$ PRINT FNP$(3,10);"ENTER ORDER NUMBER ---" PASS = 1 WHILE (ONUM < 100 OR ONUM > 999) PRINT FNP$(6,10);"Order number must be [100-999]." IF PASS <> 1 PRINT FNP$(3,30);"--- " IF PASS <> 1 PRINT FNP$(3,29);" "; INPUT #3%, ONUM$ !input from channel to supress prompt FOR I = 1 TO LEN(ONUM$) ASCV= ASCII(MID(ONUM$,I,1)) IF ASCV<48 OR ASCV>57 THEN ONUM$="0" END IF NEXT I ONUM = VAL(ONUM$) PASS = 2 NEXT PRINT FNP$(6,10);" " LINPUT #1%, ILINE$ ODAT$ = MID$(ILINE$,1,8) OCST$ = MID$(ILINE$,9,6) ODES$ = MID$(ILINE$,15,17) OAMT$ = MID$(ILINE$,32,6) PRINT FNP$(11,3);NUM1$(ONUM) !eliminate sign space PRINT FNP$(11,10);ODAT$ PRINT FNP$(11,21);OCST$ PRINT FNP$(11,30);ODES$ PRINT FNP$(11,63);OAMT$ PRINT FNP$(21,0); PRINT #2%, HLINE1$ PRINT #2%, HLINE2$ OUTLINE$ = FORMAT$(NUM1$(ONUM),"'LLL") + & " " + & FORMAT$(ODAT$,"'LLLLLLL") + & " " + & FORMAT$(OCST$,"'LLLLL") + & " " + & FORMAT$(ODES$,"'LLLLLLLLLLLLLLLL") + & " " + & FORMAT$(OAMT$,"'LLLLL") PRINT #2%, OUTLINE$ CLOSE #1%, #2%, #3% END