$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 SIZE ' 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 SUB TBOX(BYVAL ROW,BYVAL COL,BYVAL ROWS,BYVAL COLS,BYVAL ATTR,BYVAL OPT,BYVAL SHAD) '/*------------------------------------------------------------------*/ $CODE SEG "MLIB1" '/*------------------------------------------------------------------*/ ' TBOX - Display a box on the screen ' ' Row = Starting screen row of box ' Col = Starting screen column of box ' Rows = Number of rows for the box ' Cols = Number of columns for the box ' Attr = Color attribute of the box ' SUB BBOX(BYVAL Row AS INTEGER, BYVAL Col AS INTEGER, BYVAL Rows AS INTEGER, BYVAL Cols AS INTEGER, BYVAL Attr AS BYTE, BYVAL OPT AS INTEGER, BYVAL Shad AS INTEGER) PUBLIC Cols = Cols - Col + 1 Rows = Rows - Row + 1 TBOX Row,Col,Rows,Cols,Attr,Opt,Shad END SUB '/*------------------------------------------------------------------*/ 'SUB SBRDR(BYVAL ATTR AS INTEGER) ' ASM PUSH AX ' ASM PUSH CX ' ASM PUSH DX ' ASM PUSH ES ' ASM PUSH DI ' Reg 1, &H1001: Reg 2, ATTR * 256 ' CALL Interrupt(&H10) ':/*, inRegs, outRegs ' ASM POP DI ' ASM POP ES ' ASM POP DX ' ASM POP CX ' ASM POP AX 'END SUB '/*------------------------------------------------------------------*/ ' $INCLUDE "C:\CODE\MLIB\MLIB.INC" ' FOR CNT = 1 TO 15 ' SAY 1,1,STRING$(2000,"°"),31 ' TBOX 10,10,5,60,31,CNT,1 ' Y$ = GETKEY ' IF Y$ = CHR$(27) THEN CNT = 22 ' IF CNT = 15 THEN CNT = 0 ' NEXT CNT ' $INCLUDE "C:\CODE\MLIB\MLIB.INC" ' FOR CNT = 1 TO 15 ' CLS ' TBOX 1,1,25,80,12,CNT ' Y$ = GETKEY ' NEXT CNT ' $INCLUDE "C:\CODE\MLIB\MLIB.INC" ' FOR CNT = 0 TO 13 ' CLS ' BBOX 1,1,24,80,12,2 ' Y$ = GETKEY ' NEXT CNT