$CPU 8086 'make compatible with XT systems $LIB ALL OFF 'turn off all PowerBASIC libraries $ERROR ALL OFF 'turn off all PowerBASIC error checking $OPTIMIZE SPEED 'optimize for smaller code $COMPILE UNIT 'compile to a UNIT (.PBU) '$COMPILE EXE 'compile to a UNIT (.PBU) DEFINT A-Z 'Required for all numeric functions, forces PB to not 'include floating point in UNIT (makes it smaller) '/*-------------------------------------------------------------------- DECLARE FUNCTION GETSCREEN() AS STRING DECLARE SUB BWINDOW(Title$,Toprow%,Leftcolumn%,Bottomrow%,Rightcolumn%,Attr%,Shadow%,Border%) DECLARE SUB SAY(BYVAL Row AS INTEGER, BYVAL Col AS INTEGER, BYVAL Text AS STRING, BYVAL Attr AS INTEGER) DECLARE SUB LGEDIT(EL AS STRING , BYVAL TPE AS STRING, BYVAL ROW AS INTEGER, BYVAL COL AS INTEGER, BYVAL ELTH AS INTEGER,BYVAL ATTR AS INTEGER, RKEY$,BYVAL WS AS INTEGER) DECLARE SUB PUTSCREEN(BYVAL X AS STRING) $CODE SEG "MLIB12" '/*-------------------------------------------------------------------- SUB WBOX(TROW%,LCOL%,NROWS%,RCOL%,WATTR%,TITLE$,ATTR%,BT%,EL$,ELTH%,O$,RK$) PUBLIC '/*--- Determine Start Row ---*/ IF TROW% = 0 THEN TROW% = 12 - ((NROWS% )/2) + 1 END IF '/*--- Determine Start Column ---*/ IF LCOL% = 0 THEN LCOL% = 40 - ((RCOL% +2)/2) + 1 END IF '/* WS% = RCOL% - LCOL% - 3 WS% = RCOL% -3 W = NROWS%-2 IF ELTH% = 0 THEN ELTH% = WS * W O$ = O$ + " ENTERNL NOREFRESH WIN" + RIGHT$(STR$(W),LEN(STR$(W))-1) '/* SAY 1,1,STR$(WS%)+" "+O$,31 '/* --- Save Screen ---*/ SAVEEBOX$ = GETSCREEN '/* --- Determine Length of Edit String ---*/ IF ELTH% = 0 THEN ELTH% = LEN(EL$) '/* --- Put Up Window ---*/ BWINDOW TITLE$,TROW%,LCOL%,TROW%+NROWS%-1,LCOL%+RCOL%,WATTR%,0,BT% '/* --- Display Write Box ---*/ LGEDIT EL$,O$,TROW%+1,LCOL%+2,ELTH%,ATTR%,RK$,WS% '/* --- Restore Screen ---*/ PUTSCREEN SAVEEBOX$ END SUB '/*-------------------------------------------------------------------- ' $INCLUDE "C:\CODE\MLIB\MLIB.INC" ' RKEY$ = "" ' EL$ = " " ' ELTH = 1000 ' WBOX 0,0,10,50,31,"Test Write Box",27,1,EL$,ELTH,"A",RKEY$